【发布时间】:2012-05-21 15:37:39
【问题描述】:
我正在尝试从我的程序中的 .xib 加载无边框窗口。我可以通过覆盖[[[NSWindow]] initWithContentRect:styleMask:backing:defer:] 来加载无边框窗口,如下所示:
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {
self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:bufferingType defer:flag];
if (!self) {
return nil;
}
[self setOpaque:NO];
[self setHasShadow:YES];
[self setLevel:NSFloatingWindowLevel];
[self setBackgroundColor:[NSColor clearColor]];
[self setAlphaValue:1.0];
// Ignore events
[self setIgnoresMouseEvents:YES];
return self;
}
当调用另一个包含[self orderFront:self]; 的方法时,会显示一个窗口。但是,我有一个单独的 .xib 文件,其中创建了一个我想在调用此方法时显示的窗口。我将文件的所有者设置为 NSApplication 并且窗口本身属于包含上述代码的类。当我使用[self orderFront:self]; 调用该方法时,如何在 xib 中加载窗口并显示它而不是此类创建窗口?
【问题讨论】: