我正在创建一个Mac App,其Window由NSWindowController控制。
WindowController.swift的代码:
class WindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
self.window?.center()
}
}
此窗口有两个NSViewControllers。一个是窗口本身附带的,另一个是通过单击按钮的表单搜索打开的。
ViewController.swift(主视图)的代码:
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear() {
self.view.window?.level = .floating
}
}
ExecutionViewController.swift代码(通过segue打开的视图):
class ExecutionViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear() {
self.view.window?.level = .floating
}
如您所见,该应用程序是浮动的,可以正常运行,但实际上位于顶部。问题是,ExecutionViewController有一个用于启动进程的按钮。在此过程中,应用程序应暂时不浮动。像
//Time for non-floating reached
self.view.window?.level = .normal //works!
ViewController.view.window?.level = .normal //doesn't work!
//Time for non-floating ended
它使用segues进行了尝试,但这也不起作用。我假设ViewController将在此处重新加载并再次执行viewDidAppear。
我要搜索的基本上是将.view.window.level = .normal传递给主ViewController而不做其他事情的可能性。
我不确定,是否有可能。我们非常感谢您的帮助。