0

NSArrayController を介したバインディングを使用して NSCollectionView を設定しました。

私がしようとしているのは、オブザーバーを NSArrayController または NSCollectionView のいずれかに追加して、選択が変更されるたびに関数を呼び出すことです。

たとえば、これは私が NSTextField の変更に対して行っていることです:

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

私はそれを行う正しい方法を探しています。

4

1 に答える 1

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)  
}  
于 2016-08-10T05:43:03.893 に答える