我是 Objective c 和 Cocoa 的新手,在使用 NSTableView(基于单元的 NSTableView)时遇到了一些麻烦。我有两个问题
首先,一旦用户在修改单元格后点击回车,我想自动更新表格视图中的一些数据。我知道如何更新数据,因为我使用 NSDictionnary 和 arraycontroller 来填充 tableView,但我不知道或者更确切地说我不明白一旦用户修改了某个列中的单元格后如何触发操作。
要填充表格视图,我使用以下代码:
//Code for inserting data into my tableview when the user enter the "i" key
-(void)keyDown:(NSEvent *)event
{
static int i = 1; // used as a counter
NSString * str = [NSString stringWithFormat:@"%i", i];
NSMutableString *str2 = [NSMutableString string];
[str2 appendString:@"Task "];
[str2 appendString:str];
if([event keyCode] == 0x22)
{
dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:false], @"check",str,@"numero",str2,@"designation",@"1",@"length",²"13/07/17",@"debpr",@"12/07/17",@"finpr",@"11/07/17",@"debpr1",@"12/07/17",@"finpr1",@"0",@"mgt", nil];
checkState = [NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:false],[NSNumber numberWithInteger:i], nil];
[_arrayController addObject:dict];
[check setTag:i];
}
nbrTasks = i;
i++;
}
它有效,我可以修改我的表格视图单元格,但在编辑完成后我无法触发操作。我尝试使用界面构建器中的单元格视图插入一些操作,但它不起作用,当我更改 TableView 中的值时没有任何变化。有人可以使用代码示例来解释吗?因为我对使用 Objective C 和 Cocoa 编程真的很陌生,而且我不知道该怎么做。
其次,我想知道在选择某些行时如何触发操作,假设我想在选择特定行时更改标签。我该怎么做?