3
我想製作某種可拖動的表面,該表面存在於鼠標光標下方,但高於桌面上呈現的其他任何東西。我試圖在鼠標背後創建一個「蹤跡」。如何在OS X桌面上製作全屏覆蓋圖?
我該如何在Cocoa和Objective-C中做到這一點?
我想製作某種可拖動的表面,該表面存在於鼠標光標下方,但高於桌面上呈現的其他任何東西。我試圖在鼠標背後創建一個「蹤跡」。如何在OS X桌面上製作全屏覆蓋圖?
我該如何在Cocoa和Objective-C中做到這一點?
您需要繼承NSWindow
以創建無邊界窗口並將其窗口級別設置爲NSScreenSaverWindowLevel - 1
。
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)aStyle
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)flag
{
self=[super initWithContentRect:contentRect
styleMask:NSBorderlessWindowMask
backing:bufferingType
defer:flag];
if(self!=nil)
{
[self setHasShadow:NO];
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
[self setLevel:NSScreenSaverWindowLevel - 1];
}
return self;
}
這看起來並不總是在其他窗口的頂部,也不是透明的。這是爲什麼? – blake8086
你是怎麼創造你的窗戶的? –
我試着做你推薦的子類,並從我的AppDelegate實例化它。據我所知,重疊的構造函數從來沒有被調用過。我切換到直接在AppDelegate中創建窗口並在其上設置這些屬性。這工作。 – blake8086