Как правильно прослушивать выбор элемента в NSArrayController через NSNotificationCenter.defaultCenter() в Swift 2.1
У меня есть NSCollectionView заполнены с помощью привязки через NSArrayController.
Все, что я пытаюсь - это добавить наблюдателя в NSArrayController или NSCollectionView, чтобы при изменении выбора я получал вызов функции.
Например, вот что я делаю для изменения NSTextField:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.textDidChange(_:)), name: NSTextViewDidChangeSelectionNotification, object: nil)
Я ищу правильный способ сделать это.
1 ответ
Можно достичь с помощью этого простого кода:
Добавил это в приложение DidFinishLaunching:
self.fileListArrayController.addObserver(self, forKeyPath: "selectionIndexes", options: .New, context: nil)
И эта функция вызывается каждый раз, когда пользователь / программа выбирает элемент в моем NSArrayController
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
print(keyPath)
}