NSTableCellView中的NSButton:如何找到所需的objectValue?

时间:2012-02-17 21:04:17

标签: cocoa nstableview cocoa-bindings nsbutton nstableviewcell

我有一个基于视图的NSTableView,它通过绑定填充。我的textFields& imageViews绑定到NSTableCellView的objectValue属性。

如果我想在我的NSTableCellView中有一个编辑/信息按钮:

  1. 谁应该成为按钮操作的目标?

  2. 目标如何获得与按钮所在单元格关联的objectValue?

  3. 我最终想要显示一个基于objectValue的popover / sheet。

2 个答案:

答案 0 :(得分:14)

我找到了一个额外的答案:上面的答案似乎假设你在表格视图上使用绑定。由于我是一个菜鸟,我找到了一种方法来获取表格视图中的按钮。

- (IBAction)getCellButton:(id)sender {
     int row = [xmlTable rowForView:sender];
}

这样,当您单击行内的按钮时,您不必选择该行。它将返回行的int值以匹配数组中没有绑定的数据源。

答案 1 :(得分:7)

您的控制器类可以成为目标。获取对象值:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

或者,使用NSTableCellView的子类,使单元格视图成为按钮操作的目标,并调用[self objectValue]来获取对象。