2010-01-14 15 views
1

J'ai une application Cocoa que je construis qui contient un contrôle NSSearchField. Je veux activer un raccourci clavier/équivalent de sorte que lorsque les utilisations appuie sur COMMAND-OPTION-F, le champ de recherche obtient le focus.Comment implémenter l'équivalent de clé pour NSSearchField

Cependant, après beaucoup de recherches, il n'est pas clair pour moi quelle est la meilleure façon de l'implémenter. Il n'y a pas d'option pour définir ceci pour NSSearchField dans Interface Builder.

est la solution sous-classe NSSearchField et écouter l'événement keyDown (puis voir si la clé équivalente est pressée?)

Répondre

3

Vous pouvez toujours ajouter un élément de menu avec une clé équivalente de F-à-dire commandeOptionF. Dans l'action du menu, faites manuellement le champ de recherche le premier répondeur en utilisant

[window makeFirstResponder:searchField]; 
+0

Ouais. Je ne voulais pas vraiment faire cela, car il est étrange (pour l'utilisateur) d'avoir un élément de menu juste pour donner le contrôle au champ de recherche. – mikechambers

+0

Ensuite, vous pouvez remplacer keyDown: dans une classe de contrôleur, et ajuster votre chaîne de réponse en conséquence. –

+0

Eh bien, en fait, c'est exactement ce que fait Safari> Trouver> Recherche Google Je suppose que si c'est assez bon pour Apple ... Bien que je voudrais savoir comment le faire par programme. – mikechambers