簡體   English   中英

以編程方式隱藏和關閉當前 NSViewController 的窗口

[英]Programmatically hide and close the window of current NSViewController

我想在func viewDidLoad()隱藏/關閉我的主應用程序窗口,並且僅在某些事件需要時才顯示/取消隱藏主窗口。

我試過self.view.window?.close()但這會留下一個白色的窗口。 我也試過NSApp.hide(nil)但是我不能用NSApp.unhide(nil)取消隱藏。 下面是一些示例代碼:

override func viewDidLoad() {
   super.viewDidLoad()
   // Do any additional setup after loading the view.
   NSApp.hide(nil)
   runTest()
}

func runTest () {
   let check = false

   if check == false {
      NSApp.unhide(nil)
   }
}

來自NSWindow 文檔

func orderOut(_ sender: Any?)

從屏幕列表中刪除窗口,從而隱藏窗口。

func makeKeyAndOrderFront(_ sender: Any?)

將窗口移動到屏幕列表的最前面,在其級別內,並使其成為關鍵窗口; 也就是說,它顯示了窗口。

HideClose是兩個不同的東西:

如果窗口是鍵或主窗口,則緊跟在其后面的窗口對象在其位置成為鍵或主窗口。 調用orderOut(_:)會導致窗口從屏幕上移除,但不會導致它被釋放。 有關何時釋放窗口的信息,請參閱close()方法。 在子窗口上調用orderOut(_:)會導致該窗口在被移除之前從其父窗口中移除。

隱藏應用程序( NSApp.hide(nil ) 是另一回事:它

隱藏所有接收器的窗口,並激活下一個應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM