25

ホットキーが押されたときに透明なウィンドウを表示するバックグラウンド プロセスがあります。

[window makeKeyAndOrderFront:nil];
[[content animator] setAlphaValue:1.0]; // alpha was 0.0

...ウィンドウは正常に表示され、他のウィンドウの前に(私が望むように)表示されますが、手動でウィンドウをクリックするまで、ウィンドウが表示されたときにアクティブだったアプリケーションはアクティブのままです。「makeKeyAndOrderFront」がアプリケーションをアクティブにすることも期待していましたが、NSLog 行を -applicationWillBecomeActive に追加すると、マウス クリックが実行されるまでアクティブな通知が得られないことがわかります。

-makeKeyAndOrderFront を発行すると同時に、アプリケーションをアクティブに設定する方法を知っている人はいますか? キーボード入力の受け入れを開始できるように、アクティブにする必要があります-必要な支援:-)

4

3 に答える 3

54

を見てください[[NSApplication sharedApplication] activateIgnoringOtherApps : YES];

于 2009-12-15T01:30:23.130 に答える
12

10.6 以降の場合

[[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)];
于 2013-03-09T05:29:34.727 に答える
6

@Arvin回答のSwift 4.2+

NSRunningApplication.current.activate(options: [.activateIgnoringOtherApps, .activateAllWindows])
于 2019-02-12T11:14:18.893 に答える