2013-05-03 36 views
0

我編程,它看起來像這樣一個自定義的UI:http://www.youtube.com/watch?v=XLsrVVhEs94地方顯示了一個自定義的UI在屏幕上

目前,它只是一個的NSView本身,而是內工作,我希望它在我的屏幕上的每一個角落現身。

所以我編程方式創建一個NSWindow像這樣[[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];

這個偉大的工程,但有一個問題:每次我打開這個界面我可以看到大麥將被NSWindow剛剛創建。我可以看到具有NSWindow大小的陰影,然後消失(因爲[NSColor clearColor])。我認爲[NSColor clearColor]適用於剛創建的NSWindow太慢。

NSWindow成立了[window setOpaque:NO]所以它是透明的。

是否有另一種方式來顯示自定義用戶界面在我的屏幕上的某個地方?

- 蒂莫

回答

2

我想你想的延遲設置爲YES。參照documentation,延遲屬性將立即創建窗口,或將其延遲,直到它顯示在屏幕上。在這種情況下,您可以在屏幕上顯示之前設置所有窗口屬性,添加子視圖等。

NSWindow *myWin = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES]; 
... do window setup here ... 
[myWin orderFront:self]; 

此外,如果仍然閃爍,你可以叫「顯示器」的窗口,因此吸引所有的子視圖到它的緩衝器中的第一(包括您清晰),然後調用orderFront。

相關問題