在Swift 2.1中通过NSNotificationCenter.defaultCenter()在NSArrayController中监听项目选择的正确方法是什么

时间:2016-08-05 15:44:38

标签: swift notifications nsnotificationcenter addobserver

我通过NSArrayController使用绑定填充了NSCollectionView。

我正在尝试的是将一个观察者添加到NSArrayController或NSCollectionView中,这样当选择更改时我会调用一个函数。

例如,这就是我正在为NSTextField做的改变:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.textDidChange(_:)), name: NSTextViewDidChangeSelectionNotification, object: nil)

我正在寻找正确的方法。

1 个答案:

答案 0 :(得分:0)

能够通过这个简单的代码实现:

将此添加到applicationDidFinishLaunching:

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)  
}