NSApplication重新签署最前面的应用程序状态:隐藏v。停用

时间:2010-10-19 10:23:58

标签: objective-c cocoa macos nsapplication

我有一个应用程序需要在计时器到期后成为最前面的应用程序,并在按下按钮启动计时器时重新调整最前面的状态,例如

  • 点击“开始计时器” - > app取消了最前面的应用程序
  • 计时器到期 - >应用程序成为最前面的应用程序

我故意解释一些事情,因为玩sharedApplication的活跃状态并不能达到我想要的效果。

我通过[[NSApplication sharedApplication] activateIgnoringOtherApps: YES]成为最前面的应用程序,并且效果非常好。

反过来似乎不可能!?

    不应直接调用
  • [[NSApplication sharedApplication] deactivate],但更重要的是不要将下一个应用程序置于“命令选项卡顺序”转发中。该应用程序就位于其中,其菜单栏显示但不再是“活动”。

  • [[NSApplication sharedApplication] hide: self]重新启动活动状态,并将“命令 - 标签顺序”中的下一个应用程序带到前端,但它也会隐藏所有应用程序窗口。

我需要一些方法将命令选项卡顺序中的下一个应用程序放到前面而不隐藏所有窗口。

有没有这样做的好方法?

解决方案应该是10.5 Leopard和10.6兼容。

我确实有一个解决方案,从1996年左右开始,但它涉及Carbon API,我真的更喜欢Cocoa或至少是基金会的方式..

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

你有没有尝试过hide,然后是unhideWithoutActivation?