使用Qt creator和Cocoa进行编程(从当前应用程序复制所选文本)

时间:2012-03-18 11:51:43

标签: c++ cocoa qt

我想知道是否有办法在Qt应用程序中使用Cocoa API。

我已经使用Windows API从活动应用程序中获取所选文本。 我想用mac os做同样的事情。 我尝试使用xCode创建一个简单的“hello world”应用程序C ++,包括<Cocoa/Cocoa.h>,但它不能正常工作。 有没有办法让这个“hello word”应用程序用Cocoa构建?

而且,如果可以的话,我可以使用Cocoa API从活动窗口中获取所选文本吗?

编辑:

好吧,所以我使用Cocoa.h成功构建了一些东西,感谢这个帖子:How to mix Qt, C++ and Obj-C/Cocoa

对于选择问题,您可以查看我发布的答案,告诉您如何操作。

1 个答案:

答案 0 :(得分:2)

对于那些可能感兴趣的人:我找到了获取当前所选文本的方法。

只需模拟 cmd + c

感谢这个thread,我更改了代码以获取“c”键,该键由整数8(在NSEvent.h中找到)表示,所以这里是代码:

CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef saveCommandDown = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, YES);
CGEventSetFlags(saveCommandDown, kCGEventFlagMaskCommand);
CGEventRef saveCommandUp = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, NO);

CGEventPost(kCGAnnotatedSessionEventTap, saveCommandDown);
CGEventPost(kCGAnnotatedSessionEventTap, saveCommandUp);

CFRelease(saveCommandUp);
CFRelease(saveCommandDown);
CFRelease(source);

现在您只需从Qt访问剪贴板即可获得选择。 (如果问,我可以把代码这样做)

无论如何,感谢stackoverflow社区;)