bdunagan

Brian Dunagan

October 19 2010
Cocoa Tip: Hot Keys without Key Equivalents

Ever wonder why Command-A on the Mac doesn’t always select all of the text? The keystroke is actually a hot key for the “Select All” menu item under Edit for Mac applications. Interface Builder presets the menu item’s key equivalent to Command-A. If the menu item isn’t there, Command-A isn’t hooked up.

Certain applications, like Google Notifier and Remind Me Later, don’t have an Edit menu, but we only need a bit of code to create a hot key like Command-A for “Select All”. (Ironically, I found an example of this code in Google Breakpad, but Google Notifier doesn’t use it.)

# Assign the NSTextField's delegate to the controller.

- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command  {
	NSEvent *event = [NSApp currentEvent];
	if (([event modifierFlags] & NSDeviceIndependentModifierFlagsMask) == NSCommandKeyMask && [[event characters] isEqual:@"a"]) {
		// "Command-A" selects all the text.
		[textField selectText:nil];
	}
	return NO;
}
Cocoa Tip: Global Hot Keys Remind Me Later 1.1: Calendar Selection
LinkedIn GitHub Email