2010-08-12 17 views
1

這是一個相當煩人的問題,除非我將它設置爲在登錄時啓動,否則程序本身效果很好。設置在Desktopwindowlevel的NSPanel +1問題在登錄時可見

我一直在通過註銷和登錄進行測試。程序在我登錄時開始,但隱藏在桌面後面。當我點擊停靠欄中的應用程序圖標時,它就會出現在應該開始的地方。

問題是..有沒有人遇到過這個問題,我該如何解決它?我希望程序在計算機登錄後即可在桌面上顯示。我在使用IB時沒有遇到這方面的問題,但我正在使用NSRects來繪製幾乎所有內容。

對這個問題的任何想法可能會有所幫助。謝謝!

回答

2

我找到了解決我的問題。這與我的應用程序是LSUIElement應用程序有關,因爲我正在爲商店演示機器製作應用程序。我看不出在啓動我的Windows的原因是因爲的方式LSUIElements工作,所以我不得不告訴它做的幾件事情

[[NSApplication sharedApplication]activateIgnoringOtherApps:YES]; 
[window orderFrontRegardless]; 
[window makeKeyWindow]; 
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; 

,它似乎已經奏效了。

+0

好找,謝謝分享。 – codykrieger 2010-08-12 22:34:52

+0

歡迎它在測試一段時間後效果很好,所以如果你需要製作一個LSUIElement應用程序,並且需要它的窗口在登錄時到達前臺,這應該會有所幫助。 – Kyle 2010-08-13 21:46:07

0

我在我的應用程序之一是這樣的,似乎工作得很好:

// open window and force to the front 
[preferencesWindow makeKeyAndOrderFront:nil]; 
[preferencesWindow orderFrontRegardless]; 
[preferencesWindow center]; 

嘗試了這一點,看看會發生什麼。如果你不想讓它居中,顯然你不需要[preferencesWindow中心]。

+0

那些工作,我一直在試圖看看他們是否可以解決這個問題,但它的奇怪。應用程序從登錄開始就很好,但它在桌面之後。我必須再次點擊這個圖標才能讓它出現在前面,一旦它出現在那裏,我所有其他的程序都可以正常工作,但我無法弄清楚它的類似代碼。 感謝您的幫助tho看起來我將不得不更多地惹惱它。 – Kyle 2010-08-12 21:52:58

+0

當然,讓我們知道你是否找到解決方案。抱歉,我無法提供更多幫助! – codykrieger 2010-08-12 22:00:58

+0

嗯,我發現可能是導致問題的應用程序設置在plist中是UIElement的原因我希望應用程序不能正常運行,因爲我自己的原因,例如它不應該在碼頭中顯示圖標,上。我還設置了另一個應用程序,但它在登錄時顯示正常。如果我選擇關閉應用程序就可以啓動。 – Kyle 2010-08-12 22:03:07