it-swarm-ja.tech

NSWindowを前面および現在のスペースに配置する方法

私はこのコードを使用してウィンドウを表示します。

[self.window makeKeyAndOrderFront:self];
[self.window setOrderedIndex:0];

しかし、多くの場合、最後に開いた他のウィンドウの下または他のSpaceデスクトップに表示されます。どうすればユーザーに常に「前面」に表示させることができますか?

更新以前に尋ねた質問からの回答を見つけました。ウィンドウを他のウィンドウの一番上に表示します:[NSApp activateIgnoringOtherApps:YES];

しかし、アプリをユーザーの現在のスペースに移動する方法は?

45
Teo Choong Ping

アプリを前面に表示するには:

[NSApp activateIgnoringOtherApps:YES];

迅速:

NSApp.activateIgnoringOtherApps(true)

スウィフト3:

NSApp.activate(ignoringOtherApps: true)
114
jtbandes

おそらくあなたが望む:

  [self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];

他のコレクション動作を試してみてください... 10.5ではNSWindowCollectionBehaviorMoveToActiveSpaceは少しバグが多いことがわかりましたが、今のほうが良いかもしれません。

25
Nicholas Riley

しかし、アプリをユーザーの現在のスペースに移動する方法は?

あなたはしません。スペースはウィンドウではなく、アプリケーションを保持します。 (これがcollectionBehaviorプロパティがNSApplicationではなくNSWindowにある理由です。)

3
Peter Hosey

Swift 3.0

NSApp.activate(ignoringOtherApps: true)
3
Cee

Swift 2の場合、構文は少し異なるようです:

NSApplication.sharedApplication().activateIgnoringOtherApps(true)
3
iphaaw

Swift 2.0

NSApp.activateIgnoringOtherApps(true)

役立つプログラミングのヒントとハック

0
quemeful