2009-12-15 18 views
19

我有一個後臺進程,使得當按下熱鍵透明窗口出現:如何編程製作可可應用活躍

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

...窗口中顯示了罰款,&在對方的前窗口(正如我想要的那樣),但是直到我手動單擊窗口時,當窗口出現時應用程序仍處於活動狀態。我期待'makeKeyAndOrderFront'使應用程序處於活動狀態,但是向我的-applicationWillBecomeActive添加一個NSLog行,表明它沒有得到任何活動的通知,直到執行了鼠標點擊。

有誰知道我可以如何設置我的應用程序活動@同時我發出-makeKeyAndOrderFront?我需要它活躍,以便它可以開始接受鍵盤輸入 - 任何需要的援助:-)

+2

不要這樣做 - Mac應用程序一般不偷焦點有很好的理由。 – AlBlue 2009-12-15 01:32:25

+6

但是在這種情況下,由於用戶使用了熱鍵,因此預計重點將放在他的應用程序中。 – dreamlax 2009-12-15 01:42:16

回答

47

看看[[NSApplication sharedApplication] activateIgnoringOtherApps : YES];

+2

*謝謝!!! * - 我正在用NSRunningApplication的-activateWithOptions嘗試一些東西,但是我試過的所有東西都導致了一個沙灘球... – 2009-12-15 01:52:56

9

10.6或更高

[[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)]; 
+0

這個最好的地方嗎? 'applicationDidFinishLaunching'? – 2014-02-13 03:03:22

+0

感謝您的回答。我有一個多窗口的應用程序,除非設置了「NSApplicationActivateAllWindows」,否則無法正確激活。 – thomasfuchs 2014-05-04 12:12:50

相關問題