まずKVCでいけるのかと思い調査.
Technical Q&A QA1472
Debugging NSTableView's "Action Invocation" binding
http://developer.apple.com/qa/qa2006/qa1472.html
なるほどNSTableVIewについないであるNSArrayControllerのBindingで
doubleClickTargetでセレクタ(メソッド)を
doubleClickArgumentで引数を指定するわけですな.
で,ArgumentになにができるかというとRow番号となるSelectedIndex, SelectedIndexsですな.
便利便利.
?おや?カラム情報になりそうな物は?…そんなの無さげです,
困った.結局KVCだけでは無理?みたいでNSTableViewのclickedColumnを利用するしかなさそう….
でイベントが起きるのはKVCに任せてtableのclickedColumnを別途見れば良いかと思ったのですがKVCでキックしたセレクタ内ではclickedColumnは-1を返すだけ.
結局KVC側の上記Bindを全て解除しNSTableViewのsetDoubleActionでセレクタを指定して対応しました.
(旧式?)
- (void)windowDidLoad {
[_table setDoubleAction:@selector(clickAction:)];
}
- (void)clickAction:(id)arg {
NSLog(@"%d %d", [table clickedRow], [table clickedColumn]);
}
ちなみにこの場合のargはNSTableViewである.
というわけでカラム情報を取得するのはKVCでは無理でした.という記録.(本当はできるのかしら?)
0 件のコメント:
コメントを投稿