2016-07-15 42 views
0

我有一個用osx swift編寫的應用程序,我需要特定行爲/問題的幫助。我的應用已經設置爲高於使用此代碼的所有其他窗口:OSX/Swift使應用程序在任何地方都可以使用

self.window!.level = Int(CGWindowLevelForKey(Int32(kCGScreenSaverWindowLevelKey))) 

與它一點點問題,從我所看到的,是它的工作...但如果我去我的啓動板應用程序菜單,窗口仍然顯示。這正是我希望窗口行爲的方式,但每當我點擊窗口中的按鈕時,應用程序就會重置到正常桌面以正常工作。我有下面展示這種鏈接:

https://gyazo.com/f4d05c10ad7b5dbf8b95f3bd2aa23cc4

見我應得取出來我啓動板,然後恢復到正常的桌面畫面時,我打我的應用程序中的按鈕?我真的需要解決這個問題。

是否有任何info.plist屬性,我可以用來防止這種情況發生?是否有任何代碼可以讓我的窗口在任何地方都能使用,而無需將其重置到正確的桌面環境?提前致謝!

回答

0

NSFloatingWindowLevel可能是一個更好的選擇:

import Cocoa 

let kCGFloatingWindowLevel: CGWindowLevel = 
    CGWindowLevelForKey(CGWindowLevelKey.FloatingWindowLevelKey) 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow! 

    func applicationDidFinishLaunching(aNotification: NSNotification) { 
     self.window!.level = Int(kCGFloatingWindowLevel) 
    } 
} 

您當前使用的窗位類型主要是爲了屏幕窗口。如果你想浮動的調色板或窗口,然後使用上述應該給你所需的行爲。

NSWindow : NSFloatingWindowLevel

+0

這可能是一個非常愚蠢的問題...但你會怎麼聲明? –

+0

我試過使用self.window!.level = NSFloatingWindowLevel,但是我得到了大量的錯誤D: –

+0

嗯......錯誤究竟是什麼?這可能有助於知道該信息... –

相關問題