3
如何以编程方式将NSTableViewColumn绑定到NSArray.arrangedObjects项?我知道如何在IB中做到这一点,但无法找到它的编程方式。该代码在运行时添加新列,并且这些新列需要绑定到我的阵列控制器。我不能在IB做它,因为他们还没有在IB中存在。以编程方式绑定NSTableViewColumn
谢谢!
如何以编程方式将NSTableViewColumn绑定到NSArray.arrangedObjects项?我知道如何在IB中做到这一点,但无法找到它的编程方式。该代码在运行时添加新列,并且这些新列需要绑定到我的阵列控制器。我不能在IB做它,因为他们还没有在IB中存在。以编程方式绑定NSTableViewColumn
谢谢!
FWIW:我假设您在此处使用基于视图的NSTableView
s。
为此,您需要有一个NSTableView
的代表。在该代表中,您需要实施-tableView:viewForTableColumn:row:
。在那里,你可以通过询问TableView来获得Table Cell View。一旦你有了,你必须打开你想绑定的控件,然后绑定它们。一旦所有东西都连接起来,返回表格单元格视图。这里有一个简单的例子:
- (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;
}
谢谢你的回答!会尝试马上学习!再次感谢你! :) – sharkyenergy
如果表格基于单元格,该怎么办? – sharkyenergy