开发者

NSApplication resigning front most application status: hide v. deactivate

开发者 https://www.devze.com 2023-01-20 22:45 出处:网络
I\'ve got an application that needs to become the front most application after a timer expires and resign the front most status when the timer is started by pressing a button, e.g.

I've got an application that needs to become the front most application after a timer expires and resign the front most status when the timer is started by pressing a button, e.g.

  • click "start timer" -> app resigns front most application
  • timer expires -> app becomes front most application

I deliberately paraphrased things a little because playing with active status of the sharedApplication doesn't do what I want.

I become the front most app by doing a开发者_运维问答 [[NSApplication sharedApplication] activateIgnoringOtherApps: YES] and that works perfectly well.

Doing the reverse seems impossible!?

  • [[NSApplication sharedApplication] deactivate] shouldn't be called directly, but more importantly doesn't bring the next application in the "command-tab order" forwards. The app just sits there with its menu bar showing but it's no longer "active".

  • [[NSApplication sharedApplication] hide: self] resigns the active status and brings the next application in the "Command-tab order" to the front BUT it also hides all the application windows.

I need some way of bringing the next application in the command-tab order to the front WITHOUT hiding all my windows.

Is there a good way of doing that?

The solution should be 10.5 Leopard and 10.6 compatible.

I do have a solution from around 1996 but it involves Carbon APIs and I'd really prefer doing it the Cocoa or at least Foundation way..

Any help would be greatly appreciated.


Have you tried hide followed by unhideWithoutActivation?

0

精彩评论

暂无评论...
验证码 换一张
取 消