Долго мучил этот globalmonitor, то на Up не работает, то на зажатой кнопке сразу и Up и Down спамит, в обшем сделал по примеру NDHotKeyEvent,
если кому интересно
сорс cl.ly/3mLf
апп cl.ly/3mSJ
с 5ым скайпом легко словить not responding, на 2.8 все отлично
почитал про addGlobalMonitorForEventsMatchingMask: handler: ,
но так и не понял как его подсунуть,
добавил
// SkypeController.h
+ (id) addGlobalMonitorForEventsMatchingMask: (NSEventMask) mask handler: (void) keyDownEvent: (NSEvent *) pEvent;
+ (id) addGlobalMonitorForEventsMatchingMask: (NSEventMask) mask handler: (void) keyDownEvent: (NSEvent *) pEvent; ,
но как в SkypeController.m писать?
я в obj-c совсем новичек, подробнее=true;
gonzo, нужно повесить действие на 1 клавишу, но чтобы клавиша выполняла действие даже если программа висит на заднем плане, как Ventrilo, но так както используется Universal Access. trimm, , вставил код такого типа, повесил на delete (пробовал вещать на tab, enter, backspace, также пробовал NSUpArrowFunctionKey вместо ucicharcode). кнопки не хотят выполнять действие, в логах пусто. — (void) keyDown: (NSEvent *) theEvent {
NSString *theArrow = [theEvent charactersIgnoringModifiers];
unichar keyChar = [theArrow characterAtIndex: 0];
if (keyChar == 0×007f) {
NSLog (@"Success! Microphone is on! ");
[SkypeAPI sendSkypeCommand: @"SET MUTE OFF"];
} else {
NSLog (@"Success! Microphone is off! ");
[SkypeAPI sendSkypeCommand: @"SET MUTE ON"];
} }
Такое ощущение, что чего-то не хватает.
прилагаю проект, если это поможет делу
если кому интересно
сорс cl.ly/3mLf
апп cl.ly/3mSJ
с 5ым скайпом легко словить not responding, на 2.8 все отлично