2010-05-04 17 views
6

Bir mac penceresinin ön pencere olmasını nasıl programlayabilirim? Pencere tutamacım var ve penceremin diğer tüm pencerelerin üzerinde görüntülenmesini sağlamak istiyorum. Bunun için hem Karbon & Cocoa'yı kullanabilirim.Mac penceresi nasıl ön plana zorlanır?

+0

Kendi programınızda bir pencere hakkında mı konuşuyorsunuz? Yoksa diğer uygulama pencereleriyle uğraşmak ister misiniz? – Yuji

+2

Raymond Chen, bu soruyu şöyle sordu: “İki program bunu yapsaydı ne yapardı?” Bunu farkettikten sonra, bunu asla, sadece _request_, bu _force_ diye anlayamayacağınızı anlayacaksınız. – MSalters

cevap

12

Kakao için lütfen kullandığınız pencere seviyesini ayarlayabilirsiniz:

[window setLevel:NSFloatingWindowLevel]; 

Yüzen pencere Uygulamanın etkin olmasa bile, diğer tüm normal pencerelerin üzerinde görüntülenir. Eğer Uygulamanın etkin olmak için

, şunları kullanabilirsiniz:

[NSApp activateIgnoringOtherApps:YES]; 

ve

[window makeKeyAndOrderFront:nil]; 
0

sen (32 bit) kullanabiliyorsanız kOverlayWindowClass:

WindowRef carbon_window = NULL; 
CreateNewWindow(kOverlayWindowClass , ... , &carbon_window); 
// if you need cocoa: 
NSWindow *cocoa_window = [[NSWindow alloc] initWithWindowRef:carbon_window]; 

Aksi halde bir NSWindow oluşturun ve pencere seviyesini kCGOverlayWindowLevel olarak ayarlayın.

Bunun, gösterge panosunun üzerinde olacağını unutmayın. Eğer dashbord altında olmak istiyorsanız kCGUtilityWindowLevel kullanın.

İlgili konular