sha*_*rgy 3 cocoa binding objective-c nstableview
如何以编程方式将NSTableViewColumn绑定到NSArray.arrangedObjects键?我知道如何在IB中完成它,但无法找到它是如何以编程方式完成的.代码是在Runtime上添加新列,这些新列需要绑定到我的arraycontroller.我不能在IB中这样做,因为它们在IB中尚不存在.
谢谢!
FWIW:我假设你在NSTableView这里使用基于视图的.
要做到这一点,你需要有一个代表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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
877 次 |
| 最近记录: |