xcode - Cocoa app 在所有 mac 运行的应用程序之上创建透明 View

标签 xcode macos cocoa

我正在使用 Xcode 开发 mac osx 应用程序。我想在所有应用程序之上添加一个透明的全屏 View /窗口。这样我就可以在透明 View 上“绘图”,它后面将是任何应用程序、safari、word 等。

我试过如下

 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 。
非常感谢!!!

最佳答案

见苹果FunkyOverlayWindow sample code .除了设置窗口的级别外,您还需要将其背景颜色设置为清除并将其设置为非不透明。如果它是透明的,但你仍然希望它接收鼠标事件以进行绘图(而不是让它们穿过它后面的窗口),你需要做 [window setIgnoresMouseEvents:NO] .

关于xcode - Cocoa app 在所有 mac 运行的应用程序之上创建透明 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779469/

相关文章:

ios - Xcode 9.1 : module compiled with Swift 4. 0 Swift 3.2.2无法导入

iphone - 添加外部库作为目标依赖项并链接到外部库

android - 在 Mac 上构建适用于 Android 的 VLC 时出现 "unknown register alias"错误

iphone - 联合数组的 NSArray

ios - ScrollView 不在自动布局中滚动 subview

iphone - 为 ios 视网膜应用程序添加图像两次?

objective-c - NSLog 在我幸运的 HelperTool 中不起作用

python - 很好地终止后台python脚本

php - 错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本未以数组或对象开头

macos - 当 Swift 中 NSTextField 内的文本更改时执行回调