2013-03-02 98 views
4

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

我发现,双击触发以下,但我不能就检测已被点击哪一列:

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

和内部myDoubleClickInList:方法我用

[table clickedRow] == -1 

得到头。

但我无法从[table clickedColumn] 获得列标识符是否可能?

回答

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... 
} 
+0

非常感谢! :) – sharkyenergy 2013-03-03 12:04:43

-2

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

+0

或者,如果默认表剖面图是对你不够好,为什么不会你将该手势识别器添加到'viewForHeaderInSection:'中的视图? – user1244109 2013-03-02 14:27:26

+0

ehm,抱歉忘了提及我在osx上不是ios ...无论如何,这项工作还会继续吗? – sharkyenergy 2013-03-02 16:24:32

+1

显然整个问题都没有被读取。不,那个答案在OS X上不起作用。 – 2013-03-06 21:20:40