我想在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)
}
}
答案 0 :(得分:1)
func orderOut(_ sender: Any?)
从屏幕列表中删除窗口,该窗口隐藏了窗口。
func makeKeyAndOrderFront(_ sender: Any?)
将窗口移动到屏幕列表的前面,在其级别内,并使其成为关键窗口;也就是说,它显示了窗口。
Hide
和Close
是两回事:
如果窗口是键或主窗口,则紧跟在其后面的窗口对象将成为键或主键。调用
orderOut(_:)
会导致窗口从屏幕上移除,但不会导致窗口被释放。有关何时释放窗口的信息,请参阅close()
方法。在子窗口上调用orderOut(_:)
会导致窗口在被删除之前从其父窗口中删除。
隐藏应用程序(NSApp.hide(nil
)是另一回事:它
隐藏所有接收者的窗口,并激活下一个应用程序。