2011-12-21 26 views
5

favore mi dia un consiglio su come implementare questo tipo di tasto divulgazione come sulla mia immagine - una rivelazione "freccia in giù" pulsante che visualizza un menu sullo scatto:tasto Disclosure la visualizzazione di un menu

What do I want

I' ve provato due approcci, utilizzando NSPopupButton e NSButton con stile divulgazione e menù manuale visualizzazione:

  • NSPopupButton mantiene la visualizzazione di testo valore di default e non può essere ridimensionata in Interface Builde r a una dimensione stretta.

    NSPopupButton

  • NSButton viene visualizzato un menu, ma è ovviamente fuori luogo al punto in cui si fa clic sul pulsante, non sul bordo inferiore. Sto utilizzando il seguente codice:

    - (IBAction)handleShowMenu:(id)sender 
    { 
        [NSMenu popUpContextMenu:profileMenu 
            withEvent:[NSApp currentEvent] 
            forView:sender]; 
    } 
    

    NSButton with menu

Allora, qual è il modo giusto per visualizzare un esempio di menu?

risposta

3

Ci sono riuscito! L'impostazione corretta è quella di utilizzare NSPopupButton con "No Arrow" e "Disclosure" stile della cornice, "Momentary Push In" type.

+0

Dispari. Ho provato anche quello, ma ha provocato un pulsante senza bordo. "Momentary Push In" ha anche causato il triangolo rivolto verso destra anziché verso il basso. – omz

+0

La mia soluzione funziona ovviamente su Lion con XCode 4.2. Quale versione di OS e XCode stai usando? – iHunter

+0

Stesso. Ho appena fatto il mio primo esperimento con la vecchia versione di IB perché trovo un po 'più conveniente, ma ho provato la tua soluzione in Xcode 4.2 su Lion. – omz

1

Cambiando lo stile della cornice del pulsante popup su "Textured" e la freccia su "Centro" si otterrà l'aspetto del primo screenshot. Se non vuoi che appaia il titolo dell'elemento selezionato, devi anche impostare la "Posizione" su "solo immagine" (il quadrato bianco).

Modifica: ho provato questo in IB 3 e ho solo simulato l'interfaccia. Sembra che lo stile "Textured" appaia diverso in Xcode 4. "Round Textured" è vicino, ma non centra il triangolo orizzontalmente.

+0

Cambiare lo stile della cornice in "Strutturato" cambia il colore del pulsante popup (almeno su Lion) a più grigio, non è quello che voglio. – iHunter

+0

Grazie per il vostro aiuto, ho trovato una risposta. – iHunter