我有一个NSTableView
,如果用户点击了一列" ClickMe",我希望收到通知。我将整个表视图链接到一个可以提取clickedColumn:
的方法,但我得到一个绝对数字,而不是对" ClickMe"的引用。列(可能已被移动到另一个地方)。
我当然可以编写自己的搜索算法来查看列X是否实际上是" Clickme"专栏,但那不会很优雅。有没有办法正确识别列,并以编程方式接收该ID?
答案 0 :(得分:0)
查询NSTableView的columnAtPoint怎么样:在你的表中查看mouseDown:或mouseUp:method?
答案 1 :(得分:0)
我找到了一种以相当快的方式进行自己搜索的方法,但我仍然觉得我在这方面付出了太多的努力:
首先,将Interface Builder中所需列的标识符设置为“ClickMeColumn”。然后:
NSInteger cmColumn = [tableView columnWithIdentifier:@"ClickMeColumn"];
if ( [tableView clickedColumn] == cmColumn )
NSLog(@"Clicked me!");
我正在寻找[tableView clickedColumnIdentifier]
的内容。
答案 2 :(得分:0)
使用以下任何方法。由tableView的委托选择调用。您可以从相关的tableColumn中提取标识符和标题字符串。
- (void)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn {
NSLog(@"tableView:didClickTableColumn: %@, titleString: %@", [tableColumn identifier], [[tableColumn headerCell] stringValue]);
}
- (void)tableView:(NSTableView *)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn *)tableColumn {
NSLog(@"tableView:mouseDownInHeaderOfTableColumn: %@, titleString: %@", [tableColumn identifier], [[tableColumn headerCell] stringValue]);
}