Как разрешить только одно окно в GUI в Swift

Я связал а Menu-Objectс Window ControllerА. Для вызоваWindow Controller, я добавил ярлык. Но при многократном нажатии ярлыка открывается несколько окон. Как вызвать функцию, которая подсчитывает количество окон , и если это так 0, то она откроетWindow Controller, нажав на ярлык?

Я использую Swift в качестве языка программирования.

1 ответ

  1. У вас может быть статическая переменная, которая увеличивается при успешной инициализации вашего представления и уменьшении deinit представления. Затем можно проверить значение в инструкции guard перед инициализацией или задать доступность меню на основе этой переменной.

    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
    }