0

對不起,這是一個麻煩,但我還沒有其他問題。我將如何從macrabbit的Deskshade應用程序中進行類似DeskLock的操作?我已經創造了這個小窗戶,就像我來的那樣。我知道如何使用PresentationOptions在10.6中「鎖定」屏幕,但我不想冒險,因爲上次它不會讓我回來;]我將如何從Deskshade開發類似DeskLock的東西?

編輯:DeskShade應用程序實際上是要覆蓋您的桌面,隱藏所有圖標。它還可以讓你隨着幾個淡入淡出隨機化壁紙模式。還有一個名爲DeskLock的額外功能,它實際上呈現了一個帶鎖圖標的半透明黑色斜角(類似於AppSwitcher內置於Mac中),您可以放置​​個人文本。當您單擊鎖定圖標時,它會顯示一個模式,要求輸入您可以設置的密碼。您也可以在不按任何鍵的情況下輸入此密碼,然後按Enter鍵,並解鎖屏幕。這也使用隱藏桌面的DeskShade功能。

謝謝!

+0

請只描述你想要做的事情。我們有些人從來沒有使用過這個應用程序,我們大多數人可能不希望查看這裏提到的每個應用程序名稱。 – 2010-02-25 16:34:07

回答

1

要創建有子類NSWindow疊加窗口,並設置其式面膜和背景色:

@implementation BigTransparentWindow 
- (id)initWithContentRect:(NSRect)contentRect 
       styleMask:(NSUInteger)windowStyle 
        backing:(NSBackingStoreType)bufferingType 
        defer:(BOOL)deferCreation 
{ 
    self = [super initWithContentRect:contentRect 
          styleMask:NSBorderlessWindowMask //this makes the window transparent 
           backing:bufferingType 
           defer:deferCreation]; 
    if(self) 
    { 
     [self setOpaque:NO]; 
     [self setHasShadow:NO]; 
     [self setBackgroundColor:[[NSColor blackColor] colorWithAlphaComponent:0.5]]; 
    } 
    return self; 
} 
@end 

然後,您需要設置窗口的框架,使其覆蓋所有屏幕,你需要設置它的窗位適當:

- (IBAction)showWindow:(id)sender 
{ 
    //set the window so it covers all available screens 
    NSRect screensRect = NSZeroRect; 
    for(NSScreen* screen in [NSScreen screens]) 
    { 
     screensRect = NSUnionRect(screensRect,[screen frame]); 
    } 
    [yourWindow setFrame:screensRect display:YES]; 

    if(coverScreen) 
    { 
     //set the window so it is above all other windows 
     [yourWindow setLevel:kCGMaximumWindowLevel]; 
    } 
    else 
    { 
     //set the window so it sits just above the desktop icons 
     [yourWindow setLevel:kCGDesktopIconWindowLevel + 1]; 
    } 
} 

正如你所提到的,你可以使用NSApplicationPresentationOptions設置NSApp來控制用戶可以與系統進行交互。在不鎖定自己的情況下測試此功能的簡單方法是設置一個NSTimer,該值調用在超時期限後將應用程序從應用程序服務器模式中拉出的方法。

+0

在第一個註釋塊的結尾處,結尾在前面有#而不是@。我相信它不應該在那裏 - 如果我錯了,你能糾正我嗎? – 2010-03-02 03:19:48

+0

對不起,這是一個錯字。 – 2010-03-02 03:55:07

+0

爲什麼這個答案被降低了? – 2010-03-07 23:48:56

相關問題