Problem:
I have one window mainWindow and another childWindow
added to mainWindow
.
childWindow is kind of WindowExt
class. This class I define for catch method call [NSWindow becomeKeyWindow]
that must be called after [childWindow makeKeyWindow]
.
If I create childWindow and try to make it keyWindow on next way:
WindowExt *childWindow = [[WindowExt alloc] initWithContentRect:addedWindowRect
styleMask:NSBorderlessWindowMask | NSTitledWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[mainWindow addChildWindow:childWindow ordered:NSWindowAbove];
[childWindow makeKeyWindow];
method [WindowExt becomeKeyWindow]
for childWindow
is called - all fine, childWindow
become keyWindow.
But if I create childWindow as
WindowExt *childWindow = [[WindowExt alloc] initWithContentRect:addedWindowRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[mainWindow addChildWindow:childWindow ordered:NSWindowAbove];
[childWindow makeKeyWindow];
without NSTitledWindowMask
, [WindowExt becomeKeyWindow]
for childWindow
is never called - childWindow
doesn't become keyWindow.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…