-如何根据第一个表视图的行数向第二个表视图添加列?
创建动态列。您可以使用[tableView addTableColumn];
内部循环进行 rows.count
-如何根据第一个表视图中存储在列中的值对列进行排序?
Order 的意思是……OrderBy?已排序,您永远不会对 tableview 进行排序,而是对模型数组进行排序。对数组进行排序并填充表格。
-如何以编程方式将列设置为复选框列?
对于复选框实现,请在此处找到一个项目。
在您想要复选框的列中绘制一个 checkBoxCell。或者您可以以编程方式进行。
我是IB做的。
您需要创建一个数组来存储每个(行数)复选框的状态。
- (id)init {
self = [super init];
if (self) {
states=[[NSMutableArray alloc] initWithObjects:@"1", @"0", @"1", nil];
}
return self; }
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
NSLog(@"Num of rows---- %ld", [names count]);
return [names count];
}
检查具有值“检查”的 tableIdentifier。
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
if ([[tableColumn identifier] isEqualTo:@"name"]) {
return [names objectAtIndex:row];
}
else if ([[tableColumn identifier] isEqualTo:@"check"]) {
return [states objectAtIndex:row];
}
else if ([[tableColumn identifier] isEqualTo:@"states"]) {
return [states objectAtIndex:row];
}
return 0;
}
根据开/关更新复选框的值。
- (void)tableView:(NSTableView *)tableView setObjectValue:(id)value forTableColumn:(NSTableColumn *)column row:(NSInteger)row {
[states replaceObjectAtIndex:row withObject:value];
[tableView reloadData];
}
-如何以编程方式将列标题设置为存储在数组控制器中的值?
使用这一类,或者可以使用一行语句:
@interface NSTableColumn(SetTitle)
- (void)setTitle:(NSString *)inTitle
{
[[self headerCell] setStringValue:inTitle] ;
[[[self tableView] headerView] setNeedsDisplay:YES];
}
@end
编辑:
以编程方式复选框:
- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
NSButtonCell *cell=[[NSButtonCell alloc] init];
NSString *strDisplayPlaylistName;
strDisplayPlaylistName=[playListNameArray objectAtIndex:row];
[cell setTitle:strDisplayPlaylistName];
[cell setAllowsMixedState:YES];
[cell setButtonType:NSSwitchButton];
return cell;
}
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
NSCell *aCell = [aTableColumn dataCellForRow:rowIndex];
[aCell setNextState];
//NSCell *aCell=[aAddedCells objectAtIndex:rowIndex];
//[aCell setNextState];
}