Ich habe ein NSTableView in einem schwebenden Fenster, das dynamisch an die arrangedObjects
-Eigenschaft einer Instanz eines NSArrayControllers gebunden ist, die dem vordersten Dokumentfenster mit folgendem Code entspricht :NSTableColumn Wertgebunden an den NSArrayController des vordersten Fensters beim Auslösen von Ausnahmen beim Fensterwechsel
NSArrayController *documentSpecificArrayController; // properly set elsewhere
NSTableColumn *tableColumnToBind; // properly set elsewhere
[tableColumnToBind unbind:NSValueBinding];
[tableColumnToBind bind:NSValueBinding
toObject:documentSpecificArrayController
withKeyPath:@"arrangedObjects"
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
NSContinuouslyUpdatesValueBindingOption,
nil]];
Solange das dargestellte Array/die Tabellenansicht leer sind, funktionieren die Dinge gut; Alle verschiedenen Operationen in der Tabelle view/repaired array innerhalb eines Dokuments funktionieren gut. Wenn von einem Dokument mit einem nicht leeren dargestellten Array zu einem Dokument gewechselt wird, für das das dargestellte Array leer ist, wird ein endloser Strom von Ausnahmen ausgelöst.
Fehle ich etwas, das ich tun muss, wenn ich die Bindung beim Wechseln von Fenstern sauber durchtrenne? Etwas anderes? (Gibt es einige spezifische Informationen, die ich weggelassen habe, um meinen Fehler zu diagnostizieren?)
"richtig anderswo" [Zitat benötigt] :-) –
@Joshua Nozzi: Ich wusste * jemand * würde fragen. :) Der Array-Controller ist eine Eigenschaft der Dokumentenklasse, die der Delegierte des neuen obersten Fensters ist, also ist es so gekommen; Die Tabellenspalte ist in einer Tabellenansicht enthalten, die mit einem IBOutlet der Klasse verknüpft ist, in der dieser Code auftritt. Ich habe unabhängig von diesem Ausnahme-Werfen verifiziert, dass beide Variablen gesetzt sind und sich wie erwartet ändern. – Isaac