在目标c控制台应用程序中取消隐藏鼠标光标的简单实用程序

时间:2012-06-22 18:45:30

标签: objective-c console-application exc-bad-access nscursor

我正在尝试创建一个简单的控制台应用来取消隐藏光标,因为我使用的程序有一个bug并且间歇性地隐藏光标(宁可写一个快速的工具,而不是等待修复bug)。我添加了AppKit框架并编写了以下简单的控制台应用程序(main.m):

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

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        [NSCursor unhide];
    }
    return 0;
}

但我在[NSCursor unhide]行获得了EXC_BAD_ACCESS。知道我做错了吗?

我在Lion上使用XCode 4.3.2运行它

我也愿意用AppleScript做这件事,但我也无法在那里完成。

谢谢!

1 个答案:

答案 0 :(得分:0)

你想做的事情是行不通的。游标对象由每个应用程序管理和拥有。您不能影响另一个应用程序的游标(没有代码注入)。

你得到EXC_BAD_ACCESS因为你的程序实际上没有光标。一个是在通常的GUI应用启动过程中创建的,即在NSApplicationMain()中,如果你创建了一个“Cocoa Application”,但你仍然只能影响你自己的应用程序的光标。

AppleScript似乎有更好的成功机会,因为它可以让你执行一些直接影响其他应用程序的代码,但我完全不确定它是否具有像这样管理游标的功能 - 似乎对AS来说有点太低了。