0

如果用户单击“ClickMe”列,我NSTableView希望收到通知。我将整个表格视图链接到一个可以提取clickedColumn:.

我当然可以编写自己的搜索算法来查看列 X 是否实际上是“Clickme”列,但这不会很优雅。有没有办法正确识别列,并以编程方式接收该 ID?

4

3 回答 3

0

在你的表视图中查询 NSTableView 的 columnAtPoint: mouseDown: 或 mouseUp: 方法怎么样?

于 2012-06-26T14:25:22.630 回答
0

我找到了一种以相当快的方式进行自己搜索的方法,但我仍然觉得我在这方面付出了太多努力:

首先,在 Interface Builder 中将所需列的 Identifier 设置为“ClickMeColumn”。然后:

NSInteger cmColumn = [tableView columnWithIdentifier:@"ClickMeColumn"];
if ( [tableView clickedColumn] == cmColumn )
      NSLog(@"Clicked me!");

我正在寻找类似的东西[tableView clickedColumnIdentifier]

于 2012-06-26T15:38:43.480 回答
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]);

}

来自:https ://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class

于 2014-12-30T08:39:27.840 回答