如何以编程方式将 NSTableViewColumn 绑定到 NSArray.arrangedObjects 键?我知道如何在 IB 中做到这一点,但无法找到它是如何以编程方式完成的。代码在运行时添加新列,这些新列需要绑定到我的arraycontroller。我不能在 IB 中做到这一点,因为它们在 IB 中尚不存在。
谢谢!
如何以编程方式将 NSTableViewColumn 绑定到 NSArray.arrangedObjects 键?我知道如何在 IB 中做到这一点,但无法找到它是如何以编程方式完成的。代码在运行时添加新列,这些新列需要绑定到我的arraycontroller。我不能在 IB 中做到这一点,因为它们在 IB 中尚不存在。
谢谢!
FWIW:我假设您在NSTableView
这里使用基于 View 的 s。
为此,您需要为NSTableView
. 在该委托中,您需要实现-tableView:viewForTableColumn:row:
. 在那里,您可以通过询问 TableView 来获取表格单元格视图。一旦你有了它,你必须找出你想要绑定的控件,然后绑定它们。一切就绪后,返回表格单元格视图。这是一个简单的例子:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSView* retVal = [tableView makeViewWithIdentifier:[tableColumn identifier] owner:[tableView delegate]];
// Note: You probably don't want to be snarfing out controls this way -- a better
// way might be to have a custom NSTableCellView subclass with the controls plugged
// into IBOutlets on it, but that's left as an exercise for the reader.
NSTextField* textField = [[retVal subviews] objectAtIndex: 0];
[textField bind: NSValueBinding toObject: retVal withKeyPath: @"objectValue.name" options: nil];
return retVal;
}