在模态

时间:2017-07-14 15:14:39

标签: objective-c macos cocoa nswindow

我正在编写一个插件,并且在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像素宽。

有什么想法吗? 谢谢!

0 个答案:

没有答案