I'd like to make something like this NSAlert
:
As you can see, the 'return' button is the second one. How can I do this?
Here's an example of the code that I use to create my NSAlert
, but the first button gets the focus:
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"Are you sure you want to disconnect?"];
[alert addButtonWithTitle:@"Disconnect"];
[alert addButtonWithTitle:@"Cancel"];
[alert runModal];
I want to focus the "Cancel" button. Any ideas? Thanks!
To change the key equivalents for the NSButton
elements inside of the NSAlert
object, you'll have to access the buttons directly (after creation and before -runModal
) and change the key equivalents using the -setKeyEquivalent:
method.
For example, to set the Disconnect
to be ESC and the Cancel
to be return, you would do the following:
NSArray *buttons = [alert buttons];
// note: rightmost button is index 0
[[buttons objectAtIndex:1] setKeyEquivalent: @"\033"];
[[buttons objectAtIndex:0] setKeyEquivalent:@"\r"];
before calling -runModal