Я полный n00b с MacRuby и Cocoa, поэтому имейте это в виду при ответе - мне нужно много деталей и объяснений. :)MacRuby + Interface Builder: как отобразить, затем закрыть, а затем снова отобразить окно
Я создал простой проект, в котором есть два окна, оба из которых построены с помощью Interface Builder. Первое окно представляет собой простой список учетных записей с использованием табличного представления. Он имеет кнопку «+» под таблицей. Когда я нажимаю кнопку +, я хочу показать окно «Добавить новую учетную запись».
У меня также есть класс AccountsController < NSWindowController
и класс AddNewAccountController < NSWindowController
, настроенный как делегаты для этих окон, с помощью соответствующих способов нажатия кнопки и выходов для ссылки на необходимые окна.
При нажатии на кнопку «+» в окне Учетные записи, у меня есть этот код пожар:
@add_account.center
@add_account.display
@add_account.makeKeyAndOrderFront(nil)
@add_account.orderFrontRegardless
это прекрасно работает первый раз, когда я нажмите на кнопку +. Все появляется, я могу ввести свои данные и привязать его к моей модели. однако, когда я закрываю новую форму учетной записи, все начинает плохо.
Если я установил новое окно учетной записи, чтобы закрыть его, то во второй раз, когда я нажимаю кнопку +, окно будет всплывать, но оно заморожено. я не могу нажимать на какие-либо кнопки, вводить любые данные или даже закрывать форму. Я предполагаю, что это потому, что код формы был выпущен, поэтому нет обработки цикла обработки формы ... но я не совсем уверен в этом.
Если я установил новое окно учетной записи, которое не будет выпущено при закрытии, то во второй раз, когда я нажму кнопку +, окно появится хорошо, и оно будет полезно - но у него все еще есть все данные, которые я ранее ввел ... он по-прежнему связан с моим предыдущим экземпляром класса Account.
что я делаю неправильно? каков правильный способ создания нового экземпляра формы «Добавить новую учетную запись», создать новую модель учетной записи, привязать эту модель к форме и показать форму, когда я нажимаю кнопку «+» в форме «Аккаунты»?
... это все делается на OSX 10.6.6, 64bit, с XCode 3.2.4
Вы подключили другие элементы к контроллеру (кнопки/текстовые поля)? У меня возникли проблемы с последующими учебными пособиями, в которых выпадающее меню nsobjects отображается в сообщениях диспетчера –