Я разрабатываю приложение для какао, основанное на документе. Интерфейс запуска моделируется после GarageBand: отображается экран приветствия, в котором отображается одно из двух чередующихся представлений (переключается через сегментированный элемент управления): «Создать новый проект» и «Обзор последних проектов». Каждое из этих представлений контролируется специальным NSViewController (в данном случае NewProjectViewController и RecentProjectsViewController).NSTextField не принимает вход после отображения один раз
Для этого я подклассифицировал NSDocumentController, чтобы показать этот «экран приветствия» при запуске вместо создания пустого документа (пустой документ не имеет смысла в моем приложении, пока пользователь не определит определенные минимальные настройки).
После запуска/создания исходного документа, если пользователь выбирает «Создать новый проект ...» (т. Е. Новый документ), я показываю окно, которое повторно использует тот же интерфейс, что и вкладка «Новый проект» на экране приветствия , создав экземпляр того же NewProjectViewController и добавив его вид в окно.
В обоих случаях вид контроллера просмотра создается из .xib. Сам контроллер представления запрограммирован программно, и его представление добавляется к существующему подзону окна с использованием -addSubview :.
Представление для NewProjectViewController содержит несколько редактируемых экземпляров NSTextField и другие элементы управления.
Проблема: Все экземпляры NSTextField в представлении контроллера вида будут принимать ввод текста только в первый раз; Во второй раз, когда отображается представление, попытка отредактировать текст вызовет звук системного предупреждения. Текст может быть выбран (выделен), но не изменен. Кроме того, текст может быть изменен программно.
Другие элементы управления (всплывающие кнопки) могут быть изменены без проблем.
Я попытался показать окно «Новый документ» с самого начала (вместо экрана приветствия), но результат тот же: в первый раз он работает, а второй - нет.
Это проблема первого ответчика?
также , используя 10.6 Snow Leopard. –