【问题标题】:NSButton in NSTableCellView: How to find desired objectValue?NSTableCellView 中的 NSButton:如何找到所需的 objectValue?
【发布时间】:2012-03-09 06:33:10
【问题描述】:
我有一个通过绑定填充的基于视图的 NSTableView。我的 textFields 和 imageViews 绑定到 NSTableCellView 的 objectValue 的属性。
如果我想在我的 NSTableCellView 中有一个编辑/信息按钮:
谁应该是按钮操作的目标?
目标如何获得与按钮所在单元格关联的 objectValue?
我最终想显示一个基于 objectValue 的弹出框/工作表。
【问题讨论】:
标签:
cocoa
nstableview
cocoa-bindings
nsbutton
nstableviewcell
【解决方案1】:
您的控制器类可以是目标。获取对象值:
- (IBAction)showPopover:(id)sender {
NSButton *button = (NSButton *)sender;
id representedObject = [(NSTableCellView *)[button superview] objectValue];
}
或者,使用NSTableCellView的子类,使单元格视图成为按钮动作的目标,并调用[self objectValue]获取对象。
【解决方案2】:
我找到了一个额外的答案:上面的答案似乎假设您在表格视图上使用绑定。由于我是个菜鸟,我找到了一种方法来获取表格视图单元格中的按钮。
- (IBAction)getCellButton:(id)sender {
int row = [xmlTable rowForView:sender];
}
这样,当您单击行内的按钮时,您不必选择该行。它将返回行的 int 值以匹配数组中的数据源而无需绑定。