我正在使用Xcode开发Mac osx应用程序。我想在所有应用程序的顶部添加一个透明的全屏 View /窗口。这样我就可以“绘制”在透明 View 上,在它后面将是任何应用程序, Safari ,单词...等。
我尝试了如下
NSRect rect = [[NSScreen mainScreen] frame]; //this is full screen size, but still with the status bar like time, battery, etc.
NSWindow *overlayWindow = [[NSWindow alloc]initWithContentRect:rect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
overlayWindow.backgroundColor = [NSColor redColor];
[self.window addChildWindow:overlayWindow ordered:NSWindowAbove];
这是我的mac应用程序的新的全屏子窗口。但这并不是我在Mac上运行的所有应用程序的最重要的部分。
所以我的问题是
如何在Mac屏幕 View (不仅是我的应用程序的顶 View )的顶部添加 View 。
非常感谢!!!
最佳答案
请参阅 Apple 的 FunkyOverlayWindow sample code 。除了设置窗口的级别外,您还需要将其背景颜色设置为clear 并将其设置为non-opaque。如果它是透明的,但您仍然希望它接收鼠标事件以进行绘图(而不是让它们通过它后面的窗口),则需要执行 [window setIgnoresMouseEvents:NO]
。
关于xcode - cocoa 应用程序在所有运行Mac的应用程序之上创建透明 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16779469/