2016-04-01 11 views
0

Ich habe eine Liste von String-Einträgen, die im Popup-Menü eines Formulars eingegeben wurden. Das gleiche Popup befindet sich in zwei anderen Fenstern auf verschiedenen Storyboards. Die Elemente in der Liste befinden sich ebenfalls in einem Array in Code. Als Referenz ist hier das Array:Teilen Sie ein Popup-Menü in mehreren Popups und Storyboards?

static let selections = ["NTSC", "ATSC", "AM", "FM", "Other"] 

Gibt es irgendeine Weise, die ich dies alles teilen kann?

Idealerweise würde ich Bindungen verwenden und an das Array binden. Das Menü enthält jedoch Trennzeichen und ich glaube nicht, dass ich das im Array definieren kann.

Fehlt das, kann ich das Menü irgendwo auf ein Storyboard setzen und dann von den verschiedenen Bildschirmen aus darauf zugreifen?

Und Fehler dass, kann ich einfach kopieren Sie das Menü von einem Ort zum anderen? Meine Versuche führen dazu, dass im Storyboard ein neues Menü erstellt wird, das scheinbar nicht in die Popup-Schaltfläche eingefügt werden kann.

Antwort

0

Ein NSPopupButton enthält intern ein NSMenu-Objekt, das es mit den Auswahlelementen versorgt. Sie können eine Klasse mit einer Klassenmethode erstellen, die das NSMenu mit den gewünschten NSMenuItems generiert, und dann die menu-Eigenschaft der Popup-Schaltflächen für dieses generierte NSMenu-Objekt festlegen.

Ich glaube nicht, dass es eine gute Möglichkeit gibt, dieses NSMenu in Ihrem Storyboard zu erstellen und es trotzdem teilen zu lassen; Ich denke, Sie müssten das NSMenu in Code erstellen und dann manuell in Ihrer viewDidLoad Methode verdrahten. Sie können jedoch die NSPopUpButton-Objekte in Ihren Storyboards platzieren und diese an Ihre Controller anschließen. Sie müssen nur menu später für sie manuell festlegen.

+0

Es scheint, dass Sie das Menü kopieren und dann in das Storyboard selbst einfügen können, und binden Sie es dann an den Menüpunkt "Menü" der Schaltfläche. Ich finde jedoch keine Möglichkeit, das ursprüngliche Menü zu entfernen, und auch keine Möglichkeit, es über mehrere Bildschirme hinweg zu teilen. Code ist es! –

Verwandte Themen