2016-04-08 3 views
0

私はバックグラウンドアプリとして働いているプロジェクトを書いて、私はこの小さな問題があります。ココア - 自発的にスペースを変更

のは、私は私のMac上で3つのオープンデスクトップ(スペース)があるとしましょう:私のプロジェクトからオープンNSWindowのと

  1. スペースで開いていないフォルダのアプリ
  2. スペースと
  3. 空きスペースを例開いているフォルダのための私は3本の指をSWに左にスワイプスペース番号1

    で、現在午前

スペースを空けてかんたんにしてから、もう一度、開いているフォルダのあるスペースに切り替えます(すぐにフォーカスが入ります)。

次に、3本目の指を右にスワイプして3番目のスペースから2番目のエリアに切り替えると、何が起こるのでしょうか(IMO)は、NSWindowが1つもフォーカスされていないことを知っています。私もタッチパッドに触れる)と私のアプリからのNSWindowは今焦点が当てられています。

私の質問は - これを防ぐ方法は?私は、そのようなことを意図的に設定することを覚えていないことを意味します(私のアプリは、現在のNSWindowを集中させることに基づいていますが、ユーザーがウィンドウをクリックしたときだけです)。

答えて

0

最初にスペース2に切り替えたときにアプリがまだアクティブであると思われます。その後、スペース3から2に戻ると、そのスペースで最後にアクティブだったので再アクティブになります。あなたのアプリケーションのウィンドウをメイン/キーウィンドウにし、デフォルトの動作はメイン/キーになるとウィンドウのスペースに切り替えることです。

システムの動作を変更するには、システム環境設定>ミッションコントロール>アプリケーションに切り替えるときに、アプリケーションの開いているウィンドウでスペースに切り替えます。

ウィンドウのcollectionBehaviorプロパティにNSWindowCollectionBehaviorMoveToActiveSpaceを含めるように設定すると、アプリの動作を変更できますが、アプリのウィンドウがスペース2に移動することになります。これは、IBで属性インスペクタを使用して設定することもできます。

+0

Kenさん、ありがとう、ありがとうございますが、私のアプリウィンドウをアクティブなスペースに移動することなく、これをプログラムで防ぐ方法がありますか?私は他のアプリが同じように動作しないので、これはかなり奇妙なことがわかります。 – Ancinek

+0

実際には、最初にスペース2に切り替えると、あなたのアプリはまだアクティブですか?メニューバーからわかります。また、これを新しい単純なCocoaプロジェクトで再現できますか?新しいプロジェクトがそれを再現しない場合は、あなたが行ったことが異なっていることを調べる必要があります。 –

関連する問題