2

为了能够自定义我的一些 NSTableview 的行为,我创建了这个新类来充当表格视图的控制器。

@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

现有的表视图绑定到 NSArrayController 以获取数据,效果很好。我在 IB 中使用了一个 NSObject 来引用这个 aTableViewController,并将表视图的委托连接到这个控制器对象。然而,这些代表都没有被叫到。

有什么建议么?谢谢!

4

2 回答 2

3

我的 NSTableview 是基于视图而不是基于单元格的。这就是为什么 tableView:willDisplayCell:forTableColumn:row: 永远不会被调用

对于基于视图的表格视图,您可以使用

func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
}
于 2015-09-04T04:48:48.160 回答
1

我看到你发布的内容有几个问题。在@interface 代码中有一个TableViewController,而在@implementation 代码中有WorkspaceTableViewController。其中一个是错字还是这两个不同的类?

其次,控制器中的方法是数据源方法而不是委托方法。如果您使用绑定来填充表,则不会调用这些方法。

于 2012-07-25T01:27:19.863 回答