В "mainViewDidLoad" моего NSPreferencePane я предлагаю пользователю принять лицензию и при отклонении от пользователя я бы хотел закрыть окно. Я надеялся, что [завершение NSApplication] будет работать; и это делает! Логика возвращается из этой точки в коде, и мы снова находимся в окне панели системных настроек. Просто если пользователь снова нажимает на мой значок pref в том же окне, приложение загружается снова (на этот раз, пропуская "mainViewDidLoad") и показывая простой интерфейс (который никогда не запускался программно).
Итак, я думаю, что могу сделать следующее:
1) Найдите способ закрыть само окно панели настроек.
Я пытался вызвать [NSWindow close], но я получаю сообщение об ошибке, когда окно закрывается (Это окно неожиданно закрылось ...) и время от времени окно не закрывается. Ошибка имеет смысл, так как она закрылась без надлежащего сигнала. Мне было бы любопытно узнать, есть ли более чистый путь выхода.
2) Найдите способ понять, что моя предварительная панель снова загружена и покажите лицензию.
Использование делегата или уведомления кажется отличным способом для его реализации, но я, будучи полным новичком в программировании на mac / cocoa, не знаю, как и как он работает. Несколько документов, которые я прочитал, были немного сложными для моего текущего уровня понимания.
Буду очень признателен за любые указатели / примеры кода / предложения, которые могут направить меня в правильном направлении.
Спасибо!