在基于nstable的视图中获取选定的行和列

时间:2013-11-13 07:01:34

标签: macos cocoa nstableview

我有一个基于NSTable的视图,包含十行或更多行和五列。要填充此表的数据,我有一个包含5个数组的字典。因此每个字典对象都适用于每一列。

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

任何线索?

1 个答案:

答案 0 :(得分:1)

您可以覆盖tableView的mouseDown:event并将单击的列作为:

- (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