我的应用程序在菜单栏中有一个图标。当我单击该图标时,将显示NSPanel。但是为什么NSPanel没有像其他灰色背景NSWindow那样的背景颜色呢?我的NSPanel的背景看起来是透明的。我的NSPanel来自一个.xib文件。我的代码如下:
(void)openPanel
{
NSLog(@"openPanel");
NSWindow *panel = self.panelController.window;
NSRect rect = [[[NSApp currentEvent] window] frame];
NSLog(@"rect.origin.x = %f",rect.origin.x);
NSLog(@"rect.origin.y = %f",rect.origin.y);
NSLog(@"rect.size.width = %f",rect.size.width);
NSLog(@"rect.size.height = %f",rect.size.height);
[panel setFrame:NSMakeRect(rect.origin.x, rect.origin.y-100, 200, 100) display:YES];
[NSApp activateIgnoringOtherApps:NO];
[panel makeKeyAndOrderFront:nil];
isPanelVisible = YES;
}发布于 2013-01-12 08:28:19
通常,NSPanels是半透明的。有关详细信息,请参阅here。如果你不想要半透明的效果,你可以在自定义类下将IB中的NSPanel从NSPanel改为NSWindow。
https://stackoverflow.com/questions/13669713
复制相似问题