我正在使用Xcode处理mac osx应用程序.我想在所有应用程序之上添加一个透明的全屏视图/窗口.这样我就可以在透明视图上"绘制",并且它背后将是任何应用程序,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];
Run Code Online (Sandbox Code Playgroud)
这是我的mac应用程序的一个新的全屏子窗口.但它并不是我在我的Mac上运行的所有应用程序之上.
所以我的问题,如何在我的mac屏幕视图上添加视图(不仅是我的应用程序的顶视图).非常感谢!!!
Ken*_*ses 10
请参阅Apple的FunkyOverlayWindow示例代码.除了设置窗口的级别外,还需要将其背景颜色设置为清除并将其设置为非不透明.如果它是透明的,但你仍然希望它接收用于绘图的鼠标事件(而不是让它们传递到它后面的窗口),你需要这样做[window setIgnoresMouseEvents:NO].
这看起来像你想要的。
NSWindow有- (void)setLevel:(NSInteger)windowLevel
有了这个有用的预定义级别。选择一个你喜欢的。如果您希望其刚好高于或低于这些水平之一,则加或减 1。
#define NSNormalWindowLevel kCGNormalWindowLevel
#define NSFloatingWindowLevel kCGFloatingWindowLevel
#define NSSubmenuWindowLevel kCGTornOffMenuWindowLevel
#define NSTornOffMenuWindowLevel kCGTornOffMenuWindowLevel
#define NSMainMenuWindowLevel kCGMainMenuWindowLevel
#define NSStatusWindowLevel kCGStatusWindowLevel
#define NSModalPanelWindowLevel kCGModalPanelWindowLevel
#define NSPopUpMenuWindowLevel kCGPopUpMenuWindowLevel
#define NSScreenSaverWindowLevel kCGScreenSaverWindowLevel
#define NSDockWindowLevel kCGDockWindowLevel
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6712 次 |
| 最近记录: |