読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

NSTableViewのセルクリックイベント

mac

セルクリックイベントを捕まえるだけで苦労するのがOSX。修羅の国や。。
以下のNSTableViewDelegateメソッドがクリックイベントの代わりに使えるよという情報があったが、このメソッドは名前の通り選択可能かどうかを返すメソッドなので、すでにselect状態にあるセルをクリックした時には呼ばれない。

-(BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row

正しくは以下。

- (void)loadView {
    [super loadView];
    [self.tableView setTarget:self];
    [self.tableView setAction:@selector(doClick:)];
}
// Tableクリック時に呼ばれる
-(void)doClick:(id)sender {
    NSLog(@"doClick:");
    self.tableView.clickedRow;
}

参考:Single-click renaming in NSTableView « Lap Cat Software Blog