我编写了一个自定义 UI,如下所示:http://www.youtube.com/watch?v=XLsrVVhEs94
目前它只能在 NSView 本身中工作,但我希望它显示在屏幕的每个角落。
所以我以编程方式创建了一个 NSWindow,如下 [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered
推迟:否];
这很好用,但有一个问题:每次我打开这个 UI 时,我都可以看到 NSWindow 刚刚创建。我可以看到一个具有 NSWindow 大小的阴影,然后它消失了(因为 [NSColor clearColor])。我认为 [NSColor clearColor]
对刚刚创建的 NSWindow 应用太慢。
NSWindow 是使用 [window setOpaque:NO]
设置的,因此它是透明的。
是否有其他方法可以在屏幕上的某个位置显示自定义 UI?
-蒂莫
最佳答案
我认为您想将延迟设置为"is"。引用documentation , defer 属性将立即创建窗口,或者推迟它直到它显示在屏幕上。在这种情况下,您可以在屏幕上显示之前设置所有窗口属性、添加 subview 等。
NSWindow *myWin = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
... do window setup here ...
[myWin orderFront:self];
此外,如果仍然闪烁,您可以在窗口上调用“display”,以便它首先将所有 subview 绘制到其缓冲区中(包括您的清除),然后调用 orderFront。
关于objective-c - 在屏幕上的某处显示自定义 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368906/