Frage

Ich habe hier eine Anwendung, die in einer Reihe von Daten aus einer externen Datei gelesen und als a angezeigt werden muss NSPopUpButton In einer Kakao -Benutzeroberfläche. Der Haken hier ist, dass die Daten, die gelesen werden, eine Flagge haben müssen, die besagt, ob sie als "versteckt" angesehen werden oder nicht.

Wenn die Daten versteckt sind, muss sie zu dem hinzugefügt werden NSPopUpButton als an NSMenuItem, aber die hidden Die Flagge muss auf eingestellt werden YES So erscheint es also normalerweise nicht in der NSPopUpButton Speisekarte. Wenn der Benutzer eine "magische Taste" auf seiner Tastatur (normalerweise Alt, in diesem Fall) hält, müssen diese versteckten Objekte unverbindlich sein. Wenn der Benutzer den ALT-Schlüssel loslassen, müssen er automatisch wieder versteckt werden, mit Ausnahme der ausgewählten, die möglicherweise ausgewählt wurde-was, wenn ein anderer NSMenuItem wurden ausgewählt.

Ich habe eigentlich eine verdammt gute Zeit, um dies herauszufinden.

Ich habe mich gefragt, ob es eine einfache Möglichkeit gibt, dies zu tun NSArrayController und ein NSPopUpButton, Aber bisher konnte ich nichts als Lösung finden - nicht, wenn es darum geht, das verborgene Eigentum der zu verwalten NSMenuItem Objekte.

Weiß jemand, wie dies mit Kakaobindungen erreicht werden kann?

War es hilfreich?

Lösung

Sie können das Popup mit einem Array -Controller verdrahten und das Filterprädikat ändern. Aus Sicht des MVC -Designs würden Sie kein Attribut wie "Hidden" verwenden, was eine Sichtweise ist, sondern vielleicht "fortgeschritten". Setzen Sie normalerweise ein Filterprädikat auf Ihrem Array -Controller auf "Advanced = no". Wenn der Benutzer dann Ihren bevorzugten Modifikator hält, entfernen Sie das Prädikat. Das Popup wird automatisch aktualisiert. Der Array -Controller sollte an eine Array -Eigenschaft in einem anderen Objekt (in Ihrem Datenmodell) gebunden sein. Das Popup sollte an die Array -Controller an ArrangedObjects gebunden sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top