如果用户单击“ClickMe”列,我NSTableView
希望收到通知。我将整个表格视图链接到一个可以提取clickedColumn:
.
我当然可以编写自己的搜索算法来查看列 X 是否实际上是“Clickme”列,但这不会很优雅。有没有办法正确识别列,并以编程方式接收该 ID?
如果用户单击“ClickMe”列,我NSTableView
希望收到通知。我将整个表格视图链接到一个可以提取clickedColumn:
.
我当然可以编写自己的搜索算法来查看列 X 是否实际上是“Clickme”列,但这不会很优雅。有没有办法正确识别列,并以编程方式接收该 ID?
在你的表视图中查询 NSTableView 的 columnAtPoint: mouseDown: 或 mouseUp: 方法怎么样?
我找到了一种以相当快的方式进行自己搜索的方法,但我仍然觉得我在这方面付出了太多努力:
首先,在 Interface Builder 中将所需列的 Identifier 设置为“ClickMeColumn”。然后:
NSInteger cmColumn = [tableView columnWithIdentifier:@"ClickMeColumn"];
if ( [tableView clickedColumn] == cmColumn )
NSLog(@"Clicked me!");
我正在寻找类似的东西[tableView clickedColumnIdentifier]
。
使用以下任何一种方法。由 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]);
}