7

タイマーの期限が切れた後に最前面のアプリケーションになり、ボタンを押してタイマーが開始されたときに最前面のステータスを辞任する必要があるアプリケーションがあります。

  • 「タイマーの開始」をクリックします->アプリはほとんどのアプリケーションの最前線で辞任します
  • タイマーの期限が切れます->アプリが最前面のアプリケーションになります

のアクティブなステータスで遊んでもsharedApplication私が望むことをしないので、私は意図的に少し言い換えました。

私はaを実行することで最前線のアプリになり、[[NSApplication sharedApplication] activateIgnoringOtherApps: YES]それは完全にうまく機能します。

逆にするのは無理そう!?

  • [[NSApplication sharedApplication] deactivate]直接呼び出すべきではありませんが、さらに重要なことに、「コマンドタブの順序」で次のアプリケーションを転送しません。アプリはメニューバーが表示された状態でそこに座っているだけですが、「アクティブ」ではなくなりました。

  • [[NSApplication sharedApplication] hide: self]アクティブなステータスを辞任し、「コマンドタブの順序」で次のアプリケーションを前面に表示しますが、すべてのアプリケーションウィンドウも非表示にします。

すべてのウィンドウを非表示にすることなく、コマンドタブの順序で次のアプリケーションを前面に表示する方法が必要です。

それを行う良い方法はありますか?

ソリューションは、10.5Leopardおよび10.6互換である必要があります。

私は1996年頃からの解決策を持っていますが、それはCarbon APIを含み、Cocoaまたは少なくともFoundationの方法でそれを行うことを本当に望んでいます。

どんな助けでも大歓迎です。

4

1 に答える 1

5

非表示に続いてunhideWithoutActivationを試しましたか?

于 2010-12-06T09:29:27.947 に答える