Doppelklick auf Zeile in NSTableView zeigt die neue Ansicht nicht an

9

Ich habe eine os x App, die Kerndaten verwendet.

Ich habe 3 .xib Dateien in meiner App, das sind:

%Vor%

Beim Start zeigt die App eine Ansicht mit NSTableView mit einigen Datensätzen an.

Ich nenne diese Ansicht MasterTableViewController

Ich möchte, wenn der Benutzer auf die Zeile doppelklickt, die "Master" -Ansicht ausblendet und meine "Detail" -Ansicht anzeigt. Ich nannte diese Ansicht DetailViewController.

Beim Doppelklick auf die Zeile in der NSTableView in der "Master" -Ansicht passiert nichts, die "Master" -Ansicht bleibt sichtbar. Was ich will, ist "Master" -Ansicht zu verschwinden, und "Detail" -Ansicht erscheint.

Hier ist der Code, den ich gerade habe, und weitere Erklärungen folgen:

AppDelegate.h

%Vor%

AppDelegate.m

%Vor%

Nun, einige von euch fragen sich vielleicht, wo der Rest des Codes ist. Ich habe den Code der Kesselplatte für die Kerndaten unten im AppDelegage.m weggelassen, da er unverändert ist. Ich verwendete Bindung, um meine NSTableView zu arbeiten und meine Aufzeichnungen anzuzeigen, also sind MasterTableViewController.h und .m Akten leer, und selbe gilt für die DetailViewController.h und .m Akte.

Wichtiger Hinweis - Was ich hier nicht verstehen kann: Wenn ich das Tag in 2 in der applicationDidFinishLaunching-Methode ändere, wird die Detailansicht normal angezeigt, aber wenn ich sie wieder auf 1 stelle, und dann Doppelklick auf die Zeile, "Master" Ansicht (mit dem NSTableView) bleibt sichtbar, und nichts passiert (Ansichten sind nicht vertauscht)

Kann mir jemand helfen, herauszufinden, was mit meinem Code nicht stimmt?

Grüße, John

    
user2417624 13.08.2015, 10:47
quelle

1 Antwort

3

Sie haben anscheinend eine zweite Instanz Ihrer AppDelegate -Klasse in der Datei MasterTableViewController.xib instanziiert. Es sollte nur eine AppDelegate Instanz geben und das ist die in MainMenu.xib. Also sollte es nicht in MasterTableViewController.xib sein.

Eine der Instanzen erhielt die Doppelklick-Aktionsmethode von der Tabelle, aber die andere war diejenige, die den Ausgang zum Hauptfenster hatte.

Sie müssen (ed) die zweite Instanz loswerden und eine andere Möglichkeit finden, auf den Anwendungsdelegaten von MasterTableViewController zuzugreifen.

    
Ken Thomases 20.08.2015, 23:53
quelle

Tags und Links