• 表をdelegateで処理するクラスと接続しておく。
  • func tableViewSelectionDidChange(aNotification: NSNotification) { }の中にクリック時の処理を入れる。
  • クリックしたときIBActionでキックするようにしていた場合、tableViewSelectionDidChangeが起動された後、そのIBActionに制御が移るので処理が二重にならないように配慮しなければなりません。

本例の場合、Referencing Outletsのdelegate-TableViewFolderが該当します。この接続を行わないと、func tableViewSelectionDidChange(aNotification: NSNotification) { }を定義しても、制御が渡ってきません。

スクリーンショット 2015-06-04 11.44.17参考:Cocoa OS X Bindings and Non-trivial data modelの下の方に次の記述があります。The other way to do it is to simply observe the changed selection using a non-Bindings approach, and set the new representedObject in the code that gets triggered. For example, if your master view lets the user select an item in a table view, you would set up the table view’s delegate (almost certainly already done) and implement -tableViewSelectionDidChange:. In that delegate method, query the newly-selected item and assign it to detailViewController.representedObject.

Categories: Swift, 技術