     
     //  Start or forget observing any changes
     internal func setObserving(_ state: Bool) {
+        if state {
+            NotificationCenter.default.addObserver(
+                self,
+                selector: #selector(PlaylistViewController.shiftKeyDown(_:)),
+                name: NSNotification.Name(rawValue: "shiftKeyDown"),
+                object: nil)
+        }
+        else
+        {
+            NotificationCenter.default.removeObserver(self)
+        }
+        
         self.observe(self, keyArray: [k.Playlists], observing: state)
         for playlist in playlists {
             self.observe(playlist, keyArray: listIvars, observing: state)

        }
    }
    
    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        let oldValue = change?[NSKeyValueChangeKey(rawValue: "old")]
        let newValue = change?[NSKeyValueChangeKey(rawValue: "new")]

    @IBOutlet weak var playlistArrayController: NSArrayController!
	@IBOutlet weak var playitemArrayController: NSArrayController!
    @IBOutlet weak var playitemTableView: PlayTableView!
    var shiftKeyDown: Bool {
        get {
            return (NSApp.delegate as! AppDelegate).shiftKeyDown
        }
    }
    var menuIconName: String {
        get {
            if shiftKeyDown {
                return "NSTouchBarSearchTemplate"
            }
            else
