Swift

Swift:カーソルを上下させて写真を表示

いちいちクリックしないでカーソルを動かしたときに写真が表示されるようにしました。

注意点は次の通り。

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

本例の場合、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, 技術