2017-07-19 126 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方法,這正是我所需要的。再一次非常感謝你!

相關問題