相关疑难解决方法(0)

在Mac OS X中获得"全局"鼠标位置

我怎样才能进入Mac OS X"全局"鼠标位置 - 我的意思是我怎么能在cocoa/cf /中查找光标位置,即使它在窗外,即使我的窗口处于非活动状态?

我知道它在某种程度上是可能的(即使没有管理员权限),因为我在Java中看到过类似的东西 - 但我想在ObjC中编写它

抱歉我的英语 - 我希望你明白我的意思;)

macos cocoa core-foundation

18
推荐指数
3
解决办法
1万
查看次数

如何通过辅助功能API获取当前所选文本的全局屏幕坐标.

我需要帮助才能找到,在任何应用程序上按CMD + CTRL + D时,Dictionary应用程序如何显示以下弹出对话框中的所选文本.我想为我的cocoa应用程序实现相同类型的功能,我的应用程序将在后台运行,并在所选文本的某些热键按下时显示建议.

字典应用程序热键建议对话框

我已经实现了热键捕获,我只需要有代码来获取屏幕上所选文本的矩形区域,所以我可以像字典应用程序一样显示对话框.

谢谢

cocoa accessibility screen objective-c selectedtext

13
推荐指数
2
解决办法
3352
查看次数

addGlobalMonitorForEventsMatchingMask无法正常工作

我无法获得支持辅助的应用程序(开发案例中的XCode)来捕获全局keyDown事件.我已经看到了很多代码示例,如下所示,但这对我来说不适用于10.9.4.

#import <AppKit/AppKit.h>
#import <Foundation/Foundation.h>

// 10.9+ only, see this url for compatibility:
// http://stackoverflow.com/questions/17693408/enable-access-for-assistive-devices-programmatically-on-10-9
BOOL checkAccessibility()
{
  NSDictionary* opts = @{(__bridge id)kAXTrustedCheckOptionPrompt: @YES};
  return AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef)opts);
}

int main(int argc, const char * argv[])
{
  @autoreleasepool {
    if (checkAccessibility()) {
        NSLog(@"Accessibility Enabled");
    }
    else {
        NSLog(@"Accessibility Disabled");
    }

    NSLog(@"registering keydown mask");
    [NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask
                                           handler:^(NSEvent *event){
                                               NSLog(@"keydown: %@", event.characters);

                                           }];

      NSLog(@"entering run loop.");
      [[NSRunLoop currentRunLoop] run];
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

收到的输出是:

2014-08-25 17:26:36.054 test[64725:303] Accessibility Enabled
2014-08-25 17:26:36.055 test[64725:303] registering …
Run Code Online (Sandbox Code Playgroud)

macos cocoa

10
推荐指数
1
解决办法
3846
查看次数