Mat*_* S. 3 cocoa nstableview nstablecolumn
使用多列设置NSTableView以仅在一列中显示某些数据的简单方法是什么.我设置了IBOutlets,但我不知道从那里去哪里.
假设您没有使用Cocoa绑定/核心数据,您可以通过实现NSTableViewDataSource协议中的两个方法在NSTableView中显示数据.通常,您的控制器将实现协议,因此打开控制器.m文件并将这些方法添加到控制器@implementation:
- (NSInteger)numberOfRowsInTableView:(NSTableView*)tableView {
return 25; // fill this out
}
– (id) tableView:(NSTableView*)tableView
objectValueForTableColumn:(NSTableColumn*)column
row:(int)row {
return row % 3 ? @"Tick..." : @"BOOM!"; // fill this out
}
Run Code Online (Sandbox Code Playgroud)
您需要将表的dataSource属性设置为控制器.在Interface Builder中,从表视图拖动到控制器并进行设置dataSource.现在构建并运行,您应该在表中看到您的数据.
如果您只想填写一列,请将IBOutlet NSTableColumn*添加到您的控制器; 我们称之为explosiveColumn.在Interface Builder中,控制 - 从控制器拖动到要填充和设置的列explosiveColumn.然后,在tableView:objectValueForTableColumn:row中:您可以测试column参数是否与插座设置为的对象相同:
– (id) tableView:(NSTableView*)tableView
objectValueForTableColumn:(NSTableColumn*)column
row:(int)row {
if (column == explosiveColumn) {
return row % 3 ? @"Tick..." : @"BOOM!";
} else {
// other columns blank for now
return nil;
}
}
Run Code Online (Sandbox Code Playgroud)
本教程可能很有用:http://www.cocoadev.com/index.pl?NSTableViewTutorial