2017-07-19 8 views
0

Ich bin ein Neuling in Objective C und Cocoa, und ich habe einige Probleme mit der Verwendung von NSTableView (Cell-basierte NSTableView). Ich habe zwei FragenUpdate NSTableView nach der Zellmodifikation

Zuerst möchte ich automatisch einige Daten in der Tabellenansicht aktualisieren, sobald der Benutzer nach dem Ändern einer Zelle eingeben. Ich weiß, wie man die Daten aktualisiert, weil ich einen NSDictionnary und einen Arraycontroller benutze, um die TableView zu füllen, aber ich weiß nicht, oder eher ich verstehe nicht, wie man eine Handlung abfeuert, sobald der Benutzer eine Zelle in einer bestimmten Spalte ändert.

Um die Tableview füllen ich diesen Code verwenden:

//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++; 
    } 

es funktioniert, kann ich meine Tableview Zellen ändern, aber ich kann eine Aktion nicht ausgelöst, wenn Sie fertig bearbeitet. Ich habe versucht, eine Aktion mit der Zellenansicht im Interface Builder einzufügen, aber es hat nicht funktioniert, nichts ändert sich, wenn ich den Wert in meinem TableView ändere. Kann jemand das anhand von Codebeispielen erklären? Weil ich neu in der Programmierung von Objective C und Cocoa bin und ich weiß nicht, wie ich das machen soll.

Zweitens möchte ich wissen, wie kann ich eine Aktion auslösen, wenn Sie einige Zeilen auswählen, sagen wir, ich möchte eine Bezeichnung ändern, wenn eine bestimmte Zeile ausgewählt ist. Wie mache ich es?

+0

Ich finde es sehr albern, dass Sie Leute zu einem YouTube-Video leiten, anstatt Ihren eigenen Zeilencode zu veröffentlichen. –

+0

Verbinden Sie die Aktion des Textfelds mit dem Delegaten der Tabellenansicht. Überprüfen Sie 'NSTableViewDelegate' für Benachrichtigungen über die Auswahländerung. – Willeke

Antwort

0

Vielen Dank Willeke, aber ich habe endlich controlTextDidEndEditing Methode verwendet, was ich gesucht habe. Danke dir nochmal!