2011-02-09 15 views
6

Sorun: Bir pencere MainWindow varsa ve başka childWindowmainWindow eklendi. childWindow, WindowExt sınıfının bir türüdür. Bu sınıf, [childWindow makeKeyWindow]'dan sonra çağrılması gereken [NSWindow becomeKeyWindow] yakalama yöntemi çağrısı için tanımladım. Ben ChildWindow oluşturmak ve sonraki yolda keyWindow yapmaya çalışırsanız: childWindow için [WindowExt becomeKeyWindow] denirNeden StyleMask olmadan NSWindow: NSTitledWindowMask keyWindow olamaz?

WindowExt *childWindow = [[WindowExt alloc] initWithContentRect:addedWindowRect 
          styleMask:NSBorderlessWindowMask | NSTitledWindowMask 
          backing:NSBackingStoreBuffered 
           defer:NO]; 
[mainWindow addChildWindow:childWindow ordered:NSWindowAbove]; 
[childWindow makeKeyWindow]; 

yöntemi - tüm güzel, childWindow haline keyWindow. Ben NSTitledWindowMask olmadan

WindowExt *childWindow = [[WindowExt alloc] initWithContentRect:addedWindowRect 
styleMask:NSBorderlessWindowMask 
backing:NSBackingStoreBuffered 
defer:NO]; 
[mainWindow addChildWindow:childWindow ordered:NSWindowAbove]; 
[childWindow makeKeyWindow]; 

olarak ChildWindow oluşturursanız

Ama childWindow için [WindowExt becomeKeyWindow] asla denir - childWindow keyWindow haline gelmez. Bir Kakao tasarım kararı var

cevap

0

sırayla NSBorderlessWindowMask için stil maskesini ayarlayabilirsiniz: Bir titleless pencere kilit pencere haline edebilmek istiyorsanız aşağıdaki gibi

, sen NSWindow bir alt sınıfını oluşturup -canBecomeKeyWindow geçersiz kılmak gerekir kenarlıksız

yapmak