Сочетания клавиш приложений OS X

#xcode #macos

#xcode #macos

Вопрос:

Я создаю свое первое приложение OS X в Xcode, и я понятия не имею, как заставить указанное сочетание клавиш запускать некоторый код (например⌘ Cmd, C/⌘ Cmd V). Все, что я могу найти в Интернете, — это сочетания клавиш в самом Xcode.

Заранее спасибо

Ответ №1:

Обычно это настраивается автоматически. MainMenu.xib По умолчанию есть Edit меню с привязкой этих сочетаний клавиш, активирующее [firstResponder copy:] и [firstResponder paste:] . Первым ответчиком является элемент, который в данный момент находится в фокусе клавиатуры, или его родительский вид, если он не отвечает на эти действия, вплоть до окна на верхнем уровне.

Для новых сочетаний клавиш Apple рекомендует, чтобы со всеми ними были связаны пункты меню. Если вы это сделаете, вы можете установить ярлык в построителе интерфейса с помощью инспектора атрибутов. Затем вы нажимаете ctrl-drag из пункта меню на объект, которому хотите отправить действие, например, делегату приложения. Очевидно, сначала вам нужно будет создать целевой метод. Вы также должны использовать привязки для управления, когда пункт меню включен или нет.

Это не рекомендуется, но если вы хотите сделать это программно, без пункта меню, вы переопределяете

 - (BOOL)performKeyEquivalent:(NSEvent *)theEvent
 

метод рассматриваемого представления или окна. Он будет вызван, если он находится в цепочке ответчиков при нажатии клавиши, и вы вернетесь YES , чтобы указать, что вы обработали событие.

Комментарии:

1. Я добавил Cmd-C / Cmd-V в качестве примера того, что я хотел сделать. Я хочу добавить свои собственные пользовательские сочетания клавиш, которые перезагружают или изменяют размер текста с помощью таких комбинаций, как Cmd-UpArrow, Cmd-Opt-5 и т.д.