2011-11-05 15 views
9

Tengo un proyecto que necesita deshabilitar/habilitar algunos NSToolbarItems depende de diferentes opciones. Lo revisé y no encontré ningún parámetro para esto.cómo habilitar/deshabilitar NSToolbarItem

¿Hay alguna manera de habilitar/deshabilitar NSToolbarItem?

Respuesta

9

Implemente el protocolo NSToolbarItemValidation en su ventana, vista o controlador de documentos. La documentación da el siguiente código de ejemplo:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem { 

    BOOL enable = NO; 
    if ([[toolbarItem itemIdentifier] isEqual:SaveDocToolbarItemIdentifier]) { 

     // We will return YES (enable the save item) 
     // only when the document is dirty and needs saving 
     enable = [self isDocumentEdited]; 

    } else if ([[toolbarItem itemIdentifier] isEqual:NSToolbarPrintItemIdentifier]) { 

     // always enable print for this window 
     enable = YES; 
    } 
    return enable; 
} 

También puede utilizar action o tag para determinar qué elemento barra de herramientas está siendo validada. Los elementos se validan con frecuencia, cada vez que se activa su aplicación o se envían eventos, por lo que siempre estarán en un estado válido.

7

No es una solución más fácil:

-(BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem 
{ 

    return [toolbarItem isEnabled] ; 
} 

esa manera se puede utilizar [yourToolBarItem setEnabled: SÍ/NO]; en tu código

+1

Brilliant idea! –

+1

limpio y agradable, tener en una clase de tela –

2

una manera fácil de hacer esto en veloz, o usted podría puerto de esta ac objetivo es establecer simplemente acciones

Esto desactiva el elemento

Mytoolbar.action = nil 

Esto vuelve a habilitar que

Mytoolbar.action = "Name of a function" 

Al hacer esto, querrá reemplazar su IBAction con la función así que

@IBAction func blehbleh(sender: AnyObject){ Stuff } 

sería cambiado a

func blehbleh(){ Stuff } 
0

Como dijo nsij22 es necesario configurar la acción.

En Storyboard simplemente presione ctrl + arrastre del elemento de la barra de herramientas a la acción del código.

Cuestiones relacionadas