我正在编写一个插件,并且在Cocoa中是一个巨大的初学者;主机显示模态对话框并在那里调用我的插件。我想在该模态对话框之上创建一个不可见的NSWindow(这个NSWindow将用于创建一个新的wxWidgets模式对话框)。
但问题是,无论我编写什么代码,它总是在主机模式对话框下面显示一个固定大小的空白无边框窗口......
这是我尝试过的:
NSWindow *myWindow = [[NSWindow alloc] initWithContentRect:frameRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO ]; //
[myWindow setFrame:frameRect display:YES];
[myWindow setFrame:NSMakeRect(0.f, 0.f, 1.f, 1.f) display:YES animate:YES];
NSRect frame = [myWindow frame];
frame.size = NSMakeSize (0.0, 0.0);
[myWindow setFrame: frame display: NO animate: NO];
[myWindow makeKeyAndOrderFront:nil];
[myWindow setLevel:NSStatusWindowLevel];
[myWindow setLevel:CGWindowLevelForKey(kCGMaximumWindowLevelKey)];
[NSApp activateIgnoringOtherApps:YES];
如果我这样做:
[[myWindow contentView] setIsVisible:NO];
for (NSView *view in [[myWindow contentView] subviews]) {
[view setHidden:YES];
}
然后原始的原生moda消失了。我无法访问用于创建宿主本机模态的原始NSWindow。我对myWindow的需求是超越顶部(如模态)并且不可见/透明或1像素宽。
有什么想法吗? 谢谢!