Использование оболочки DDHotKey для создания какао / углерода NSWindow
С помощью Дэйва ДеЛонга и других специалистов по stackru я дал своему учебному приложению крутой эффект горячей клавиши, но я не могу понять, как заставить его создать экземпляр окна.
У меня есть следующие настройки:
Калькулятор, который не активен при первом запуске, но имеет значок и меню NSStatusItem с опцией меню, которая открывает главное окно.
Кроме того, я добавил DDHotKeyCenter.h и DDHotKeyCenter в каталог + связал Carbon.framework.
NSStatusMenu подключается к окну через:
-(IBAction)activateMain:(id)sender{
[NSApp activateIgnoringOtherApps:YES];}
Мне было интересно, можно ли подключить действия, выполняемые горячей клавишей, с помощью метода Blocks, к IBAction напрямую или есть какой-то промежуточный шаг для их подключения?
Было бы лучше, чтобы DDHotKey запустил NSEvent, или он вообще может это сделать?
Я, кажется, немного смущен его реализацией.
1 ответ
DDHotKey не "запускает NSEvent". Он вызывает метод для объекта. Вы можете очень легко настроить вашу горячую клавишу, чтобы запустить activateMain:
метод любого объекта, которым он принадлежит:
...
DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init];
[c registerHotKeyWithKeyCode... target:self action:@selector(activateMain:) object:nil];
...
Или, если вы хотите использовать блок, вы можете сделать:
...
DDHotKeyTask task = ^(NSEvent *hkEvent) {
[NSApp activateIgnoringOtherApps:YES];
};
DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init];
[c registerHotKeyWithKeyCode... task:task];
...