Hi,
ich habe mich schon öfters darüber geärgert, dass man die hidden property von NSTableColumn nicht im IB an die UserDefaults binden kann. Um dieses Problem zu lösen, habe ich mir einfach eine SubKlasse von NSTableColumn geschrieben.
Man wählt im IB einfach eine NSTableColumn an und ändert die Klasse in NSHiddenTableColumn. Wenn man den Identifier im IB angibt hat man nun zwei bzw. drei Möglicheiten:
1. Identifier = identifier (keine Bindung an NSUserDefaults)
2. Identifier = identifier@<Prefkey>
3. Identifier = identifier = PrefKey
Registriert man seine UserDefaults muss man einfach den identifier oder den PrefKey als Schlüssel angeben, ein [NSNumber numberWithBOOL:BOOL] als value und ein UI-Element an diesen Key über einen NSUserDefaults-Controller binden. Schon kann der User nach belieben Columns an - und abwählen.
Die Source habe ich angehängt, sieht erstmal ein bisschen dreckig aus, da ich ursprünglich noch andere Categories eingebunden habe, die den Code übersichtlicher machen. Diese Subklasse funktioniert mit Bindungen, NSTableViewDataSource und NSOutlineViewDataSource.
Wenn ihr Verbesserungsvorschläge habt immer her damit, da ich noch nicht lange mit Cocoa arbeite und mir nicht sicher bin, ob diese Methode die eleganteste ist, aber sie funktioniert
Viele Grüße
ich habe mich schon öfters darüber geärgert, dass man die hidden property von NSTableColumn nicht im IB an die UserDefaults binden kann. Um dieses Problem zu lösen, habe ich mir einfach eine SubKlasse von NSTableColumn geschrieben.
Man wählt im IB einfach eine NSTableColumn an und ändert die Klasse in NSHiddenTableColumn. Wenn man den Identifier im IB angibt hat man nun zwei bzw. drei Möglicheiten:
1. Identifier = identifier (keine Bindung an NSUserDefaults)
2. Identifier = identifier@<Prefkey>
3. Identifier = identifier = PrefKey
Registriert man seine UserDefaults muss man einfach den identifier oder den PrefKey als Schlüssel angeben, ein [NSNumber numberWithBOOL:BOOL] als value und ein UI-Element an diesen Key über einen NSUserDefaults-Controller binden. Schon kann der User nach belieben Columns an - und abwählen.
Die Source habe ich angehängt, sieht erstmal ein bisschen dreckig aus, da ich ursprünglich noch andere Categories eingebunden habe, die den Code übersichtlicher machen. Diese Subklasse funktioniert mit Bindungen, NSTableViewDataSource und NSOutlineViewDataSource.
Wenn ihr Verbesserungsvorschläge habt immer her damit, da ich noch nicht lange mit Cocoa arbeite und mir nicht sicher bin, ob diese Methode die eleganteste ist, aber sie funktioniert
Viele Grüße