Так что это код, который я, однако, кажется, oversimplistic мне, что, вероятно, почему он не ловить нажатия клавиш пользователем, как это было мое намерение этого мини-проекта:Ключи и основные объекты, требуется NSView?
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
@interface keyObject : NSObject
- (void)mouseDown:(NSEvent *)theEvent;
@end
@implementation keyObject
- (void)mouseDown:(NSEvent *)theEvent {
NSLog(@"keypress detected!");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"test");
keyObject * myObject = [[keyObject alloc] init];
}
while (1) {
// Waiting for event to trigger?
}
return 0;
}
Я прочитал, что можно уловить пользовательский ввод без NSView, хотя, возможно, это упростит? Я хотел бы создать глобальную горячую клавишу через мою собственную программу командной строки.
А я тоже старался сделать его системным, а на самом деле хе-хе. В любом случае, так можно было бы реализовать это в методе main() ?: [NSEvent addGlobalMonitorForEventsMatchingMask: обработчик NSKeyDownMask:^(событие NSEvent *) {// Активировать приложение при нажатии cmd + ctrl + alt + T if ([event modifierFlags ] == 1835305 && [[event eventsIgnoringModifiers] сравните: @ "t"] == 0) {[NSApp activateIgnoringOtherApps: YES]; }}]; – Pigman168
@ Pigman168, у вас не должно быть проблем с использованием этого подхода в 'main'. Единственное, что вам, вероятно, потребуется настроить и запустить экземпляр 'NSRunLoop' (и, возможно, установить' NSApplication') для получения событий. 'NSApplicationMain (argc, argv)' обычно делает эту настройку для вас. –
Спасибо, что так много! Я попробую это позже вечером. Мои извинения за (потенциально) ужасное форматирование моего комментария, я нахожусь на своем телефоне, который несколько ограничен. – Pigman168