2012-06-26 8 views
6

su osx lion, puoi control-command-do triplo tocco su una parola puntata da un mouse in qualsiasi app per avviare un dizionario popover. Voglio creare un'app per tenere traccia delle parole che un utente sta cercando nel dizionario.Come agganciare il dizionario OS X

Come faccio a osservare l'evento in cui l'utente fa control-command-do tap triplo per avviare il dizionario popover?

Comprendo che l'API specifica per questo è HIDictionaryWindowShow.

risposta

3

È possibile utilizzare popoverDidShow:

- (void)awakeFromNib { 
    NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter]; 
    [notificationCenter addObserver:self selector:@selector(popoverDidShow:) 
          name:NSPopoverDidShowNotification object:nil]; 
} 

// dictionary is shown or another NSPopover 
- (void)popoverDidShow:(NSNotification*)notify { 
    //your code 
} 
+0

buona idea. ma come faresti a sapere se il popover provenisse da HIDictionaryWindowShow? Voglio dire che potrebbe essere solo un altro popover in qualsiasi altro posto in tutto il sistema. – hollow7

+0

Utilizza il metodo ** nome ** per scoprire che tipo di notifica hai a che fare quando ricevi una notifica, '[notifica nome]'. Usa le informazioni nel NSDictionary '[notify userInfo]'. Utilizzare l'oggetto ** associato alla notifica '[oggetto notifica]' per conoscere i metodi 'description, attributeKeys' o altri – jackjr300