【发布时间】:2014-08-30 13:47:47
【问题描述】:
我正在尝试将 keynav 移植到 OS X。它基本上可以工作,但由于无法更改(全局)监控事件,我遇到了问题。
是否可以在鼠标单击事件期间抑制键盘修饰符?也许使用序列,例如使用“控制键向上”+鼠标单击创建键盘事件?
这是我的鼠标点击方法:
- (void)clickMouseAtPoint:(CGPoint)point
{
CGEventRef move = CGEventCreateMouseEvent(
NULL, kCGEventMouseMoved,
point,
kCGMouseButtonLeft // ignored
);
CGEventRef click1_down = CGEventCreateMouseEvent(
NULL, kCGEventLeftMouseDown,
point,
kCGMouseButtonLeft
);
CGEventRef click1_up = CGEventCreateMouseEvent(
NULL, kCGEventLeftMouseUp,
point,
kCGMouseButtonLeft
);
CGEventPost(kCGHIDEventTap, move);
CGEventPost(kCGHIDEventTap, click1_down);
CGEventPost(kCGHIDEventTap, click1_up);
CFRelease(click1_up);
CFRelease(click1_down);
CFRelease(move1);
}
【问题讨论】:
-
我找到了解决方案。从这里修改代码:gist.github.com/boratlibre/8313195 稍后我会为我的问题添加答案。 navkey 现在工作正常。也许我会把它添加到github。