如何在Swift中只允许GUI中的一个窗口

时间:2016-05-28 18:08:33

标签: swift cocoa window nswindowcontroller

我将Menu-ObjectWindow Controller相关联。为了拨打Window Controller,我添加了一个快捷方式。但是在多次按下快捷键时,会打开多个窗口。如何调用一个计算窗口数量的函数,如果它是0,它会在按下快捷方式时打开Window Controller

我使用Swift作为编程语言。

1 个答案:

答案 0 :(得分:0)

您可以拥有一个静态变量,该变量在视图成功初始化时增加,并在视图的deinit上减少。然后,您可以在初始化之前检查保护语句中的值,或者根据该变量设置菜单可用性。

class WindowController: NSWindowController {
  static var count = 0

  override func windowDidLoad() {
    WindowController.count += 1
  }

  deinit {
    WindowController.count -= 1
  }
}

func createWindow() {
  guard WindowController.count = 0 else { return }
  // Create window here
}