1

我有一个基于视图的 NSTable,它有十行或更多行和五列。为了填充该表的数据,我有一个包含 5 个数组的字典。所以每个字典对象都是针对每一列的。

现在,当我单击任何单元格时,我需要获取信息。我正在使用tableViewSelectionDidChange委托来获取有关单元格选择的通知。使用它我只能[myTableView selectedRow]得到了解所选行的信息。我怎么知道该行在哪一列。例如:我选择/单击第 3 列中的第 5 行。现在我需要知道它点击了哪一列,以便我可以从字典中提取所需的对象。

有什么线索吗?

4

1 回答 1

1

您可以覆盖 tableView 的 mouseDown: 事件并将单击的列获取为:

- (void)mouseDown:(NSEvent *)theEvent
  {

      NSPoint globalLocation = [theEvent locationInWindow];
      NSPoint localLocation = [self convertPoint:globalLocation fromView:nil];

      NSInteger clickedCol = [self columnAtPoint:localLocation];

      [super mouseDown:theEvent];
  }

或者您可以使用 NSTableView 委托方法:

 tableView:didClickTableColumn:

参考检查: https ://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/NSTableViewDelegate/tableView:didClickTableColumn :

于 2013-11-13T07:43:44.773 回答