2010-09-21 10 views
8

Tengo una ventana simple con 3 botones y estoy intentando agregar una tecla de acceso rápido para que pueda "presionar" esos botones sin tener que cambiar a esa aplicación, presione un botón y luego vuelve a lo que estaba haciendo.Tecla de acceso directo a todo el sistema para una aplicación

Algo así como Cmd +Shift + pulse la tecla 1, Cmd +Shift + pulse el botón 2, etc.

¿Hay alguna manera de lograr esto en Cacao (con Objective-C)? Gracias, se agradece el código ya que soy un novato total en Cocoa.

Respuesta

11

Además, no me gusta PTHotKey, por lo que terminó escribiendo un nuevo envoltorio, disponible aquí:

http://github.com/davedelong/DDHotKey

edición

los 2 archivos que usted necesitaría son:

Y que tendría que utilizar algo como esto:

- (IBAction) registerHotkey:(id)sender { 
    DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init]; 
    if (![c registerHotKeyWithKeyCode:kVK_ANSI_1 modifierFlags:(NSCommandKeyMask | NSShiftKeyMask) target:self action:@selector(hotkeyWithEvent:) object:nil]) { 
    NSLog(@"unable to register hotkey"); 
    } else { 
    NSLog(@"registered hotkey"); 
    } 
    [c release]; 
} 

- (void) hotkeyWithEvent:(NSEvent *)hkEvent { 
    NSLog(@"Hotkey event: %@", hkEvent); 
} 
+0

Gracias, perdón por el retraso. Ha sido una semana ocupada. Esto parece prometedor. ¿Hay alguna forma de no usar el marco de carbono? – Jessica

+0

@Jessica sí, pero no realmente. Sí, si está utilizando 10.6 y desea filtrar * cada evento clave * en el sistema en busca de combinaciones específicas para reconocer. No, si quieres un verdadero comportamiento de tecla de acceso rápido. Sin embargo, no me preocuparía el Carbono. Esta porción de carbono se actualizó para ser compatible con 64 bits. –

+0

Bien, déjame intentarlo. Dos cosas: 1) tiene un enlace directo a un archivo comprimido (no uso git y no puedo encontrar un enlace de descarga en la página que publicó). Si bien el 'cómo usar' es claro, soy un completo novato. ¿Tiene un pequeño fragmento que puedo usar como guía, por ejemplo, una tecla de acceso directo cmd-shift-1? – Jessica

2

PTHotKey es viejo y reventado (genera resmas de advertencias) el SDK modernas. Use SGHotKeysLib en su lugar.

Tanto SGHotKeysLib como PTHotKey son códigos fuente reutilizables. Solo necesita agregar las clases a su propio proyecto y luego usarlas de sus propias clases.

+1

genial, gracias por la sugerencia. ¿Alguna posibilidad de que puedas publicar un pequeño fragmento? como dije, solo comienzo con Cocoa – Jessica

Cuestiones relacionadas