2016-05-28 5 views
0

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

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

ответ

0

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

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 
} 
+0

Извините, я не мог следовать за вами ... Где добавить переменную и как ее проверить? – HelloToYou

+0

Простейший способ сделать это - добавить статическую переменную в WindowController, а затем в функцию, которую вызывает меню для загрузки меню, которое вы можете проверить, чтобы увидеть, равна ли переменная 0. В подклассе вы можете увеличить статическую переменную в WindowDidLoad и уменьшение в Deinit или WindowWillClose. –

+0

Может ли создать пример кода? Я новичок в Swift, поэтому некоторые термины меня смущают. Итак ... Где мне создать переменную? И затем, после создания, мне нужно подключить «Menu-Object» с функцией 'viewDidLoad()', и там мне нужно проверить, если var равен 0? Или в чем смысл? В заключение пример мог бы мне действительно помочь :) – HelloToYou