2011-12-21 16 views
5

Por favor, dame un consejo de cómo implementar este tipo de botón de divulgación como en mi pantalla - una revelación "flecha abajo" botón que muestra un menú de clic:botón Divulgación muestra un menú

What do I want

I' he intentado dos enfoques, utilizando NSPopupButton y NSButton con el estilo de la divulgación y el menú Manual mostrando:

  • NSPopupButton que se mantenga la visualización de texto valor por defecto y no se puede cambiar el tamaño de la interfaz Builde r a un tamaño estrecho.

    NSPopupButton

  • NSButton muestra un menú, pero está fuera de lugar, obviamente, hasta el punto en que haga clic en el botón, no en el borde inferior. Estoy usando el siguiente código:

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

    NSButton with menu

Entonces, ¿cuál es la forma correcta para que aparezca un menú?

Respuesta

3

¡Lo he logrado! La configuración correcta es usar NSPopupButton con "Sin flecha" y "Divulgación" Estilo de bisel, "Tipo de inserción momentánea".

+0

Impar Intenté eso también, pero resultó en un botón sin bordes. El "empuje momentáneo" también hizo que el triángulo viera hacia la derecha en lugar de hacia abajo. – omz

+0

Mi solución obviamente funciona en Lion con XCode 4.2. ¿Qué versión de OS y XCode estás usando? – iHunter

+0

Lo mismo. Acabo de hacer mi experimento inicial con la versión anterior de IB porque me parece un poco más conveniente, pero probé tu solución en Xcode 4.2 en Lion. – omz

1

Cambiando el estilo del bisel de su botón emergente a "Textured" y la flecha a "Center" le dará la apariencia de su primera captura de pantalla. Si no desea que aparezca el título del elemento seleccionado, también debe configurar la "Posición" en "solo imagen" (el cuadrado blanco).

Editar: Intenté esto en IB 3 y solo simulé la interfaz. Parece que el estilo "Textured" se ve diferente en Xcode 4. "Round Textured" está cerca, pero no centra el triángulo horizontalmente.

+0

Cambiar el estilo del bisel a "Textured" cambia el color del botón emergente (al menos en Lion) a más grisáceo, eso no es lo que quiero. – iHunter

+0

Gracias por su ayuda, he encontrado una respuesta. – iHunter

Cuestiones relacionadas