2017-07-19 99 views
0

我是Objective C和Cocoa的新手,我在使用NSTableView(基于单元的NSTableView)时遇到了一些麻烦。我有两个问题更新单元格修改后的NSTableView

首先,我想在用户在修改单元格后输入命令时自动更新tableview中的一些数据。我知道如何更新数据,因为我使用NSDictionnary和一个数组控制器来填充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

我觉得你非常愚蠢,你指示人们到YouTube视频,而不是张贴自己的线路代码。 –

+0

将文本字段的操作连接到表视图的代理。检查'NSTableViewDelegate'选择更改通知。 – Willeke

回答

0

非常感谢Willeke,但我终于使用了controlTextDidEndEditing方法,这正是我所需要的。再一次非常感谢你!

相关问题