У меня была та же проблема, что и у вас сегодня, и мне потребовалось довольно много времени, чтобы разобраться с ней, поэтому вот мое решение:
Я обнаружил, что NSWindow
появляется, как только вы звоните loadNibNamed:owner:
.Так что должен был быть какой-то механизм для автоматического открытия окон из перьев.
Поэтому я перепроверил перо и увидел, что на панели инспектора атрибутов есть опция с именем "Visible At Launch"
, которая проверяется по умолчанию..
Решение очень простое: просто снимите этот флажок, и он будет работать, как и ожидалось.
Мне легко не заметить, так как вы ожидаете, что окно откроется, но оно действительно открывается дважды (один разавтоматически и во второй раз, потому что System Preferences.app показывает его в виде листа), что приводит к сбоям.
Другая проблема, которая может возникнуть в зависимости от того, как вы определили свойство ivar / в своем классе, заключается в том, что послесначала закройте и снова откройте окно, оно просто замерзает.Это связано с тем, что по умолчанию окно освобождается при закрытии.
Поэтому обязательно снимите флажок "Release When Closed"
в конструкторе интерфейса.