为了能够自定义 NSTableview 的一些行为,我创建了这个新类来充当 TableView 的 Controller 。
@interface aTableViewController : NSObject<NSTableViewDelegate>
@end
@implementation aTableViewController
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
return 1;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
return @"something";
}
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{}
@end
现有的 TableView 绑定(bind)到 NSArrayController 来获取数据,效果很好。我使用 NSObject 来引用 IB 中的 aTableViewController,并将 TableView 的委托(delegate)连接到该 Controller 对象。然而,这些代表都没有被召集。
有什么建议吗?谢谢!
最佳答案
My NSTableview is view-based instead of cellbased. That's why tableView:willDisplayCell:forTableColumn:row: never gets called
对于基于 View 的tableview,您可以使用
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
}
关于cocoa - 连接到专用 Controller 时不调用 NSTableView 委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641170/