检测双击NSTableview标题

时间:2013-03-02 13:03:48

标签: objective-c cocoa header nstableview

我需要检测NSTableView标题上的双击。

我在doubleclick上发现了以下触发器,但是我无法检测到哪个列被点击了:

[table setTarget:self];
[table setDoubleAction:@selector(myDoubleClickInList:)];

并在myDoubleClickInList:方法中使用

[table clickedRow] == -1

获取标题。

但我无法从[table clickedColumn]获取列标识符 它甚至可能吗?

2 个答案:

答案 0 :(得分:2)

假设您已经访问了一个名为table的实例变量或属性,那么以下内容将允许您获取列标识符,

NSInteger column = [table clickedColumn];
NSRange columnRange = NSMakeRange(0, [table numberOfColumns]);
if (NSLocationInRange(column, columnRange){
    NSTableColumn *tableColumn = [[table tableColumns] objectAtIndex:column];
    NSString *identifier = [tableColumn identifier];
    // Now do something with the column identifier...

} else {
    // The click was not in a column, do something else...
}

答案 1 :(得分:-2)

如果我必须这样做,我会创建一个UIview子类,在视图顶部添加UITapGestureRecognizer(双击 - >选择器),并在- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section中返回自定义视图。我现在无法提供任何代码,但我希望这会有所帮助。