首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >makeKeyAndOrderFront也不做任何事情

问makeKeyAndOrderFront也不做任何事情
EN

Stack Overflow用户
提问于 2013-07-17 12:49:32
回答 1查看 1.4K关注 0票数 4

我有一个应用程序,它在启动时作为OS X菜单栏中的菜单运行(即作为后台应用程序)。当您从菜单中选择一个选项时,它会转换为前台应用程序(创建停靠图标)并显示一个窗口。

下面是我使用的后台/前台代码:

代码语言:javascript
复制
+(void) TransformToForegroundApplication {
    ProcessSerialNumber psn = { 0, kCurrentProcess };
    TransformProcessType(&psn, kProcessTransformToForegroundApplication);
}

+(void) TransformToBackgroundApplication {
    ProcessSerialNumber psn = { 0, kCurrentProcess };
    TransformProcessType(&psn, kProcessTransformToUIElementApplication);
}

从外观上看,这是相当标准的东西。它工作得很好,除了一个小问题。

问题是,在我调用TransformToForegroundApplication之后,我调用了窗口上的makeKeyAndOrderFront:,让它出现在Z顺序的前面并接收焦点--但两者都没有。它显示在背景中,在其他所有东西的下面。我需要单击停靠图标,或者最小化它前面的所有窗口,然后单击该窗口,以便将其带到前面。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-17 12:58:28

也许你需要激活这个应用程序,我认为TransformProcessType()不会自动激活,我知道-makeKeyAndOrderFront:也不会。

你试过给[NSApp activateIgnoringOtherApps:YES]打电话吗?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17691347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档