views:

273

answers:

1

I have a Cocoa application I am building which contains an NSSearchField control. I want to enable a keyboard shortcut / key equivalent so when the uses presses COMMAND-OPTION-F, the search field gets focus.

However, after much searching, it is not clear to me what the best way to implement this is. There is not an option to set this for the NSSearchField in Interface Builder.

Is the solution to subclass NSSearchField and listen for the keyDown event (and then see if the key equivalent is pressed?)

+1  A: 

You can always add a menu item with a key equivalent of COMMAND-OPTION-F. In the menu's action, just manually make the search field the first responder using

[window makeFirstResponder:searchField]; 
Yeah. I didnt really want to do that though, since it is odd (for the user) to have a menu item just to give control to the search field.
mikechambers
Then you can override keyDown: in a controller class, and adjust your responder chain accordingly.
Well, actually, that is exactly what Safari does Edit > Find > Google SearchI guess if it is good enough for apple...Although I would like to know how to do this programmatically.
mikechambers
Yeah, generally its good practice to have a menu item for these type of 'global' keyboard shortcuts. Usually best to follow Apple :)