我是Objective c和Cocoa的新手,我在使用NSTableView(基于Cell的NSTableView)方面遇到了一些麻烦。我有两个问题
首先,我想在用户在修改单元格后输入后自动更新tableview中的某些数据。我知道如何更新数据,因为我使用NSDictionnary和arraycontroller来填充tableView,但是我不知道或者我不知道如果用户修改了一个单元格后如何触发一个动作。某栏。
要填充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单元格,但是在编辑完成后我无法触发动作。我尝试在界面构建器中使用Cell View插入一些操作,但它没有工作,当我更改TableView中的值时没有任何变化。有人可以使用代码示例解释它吗?因为我对Objective C和Cocoa编程真的很陌生,我不知道该怎么做。
其次,我想知道如何在选择某些行时触发操作,让我们说我想在选择特定行时更改标签。我该怎么做?
答案 0 :(得分:0)
非常感谢Willeke,但我终于使用了controlTextDidEndEditing方法,这正是我想要的。非常感谢你!