Я прочитал этот документ. Видел этот вопрос SO (среди другие). И ознакомился с этим руководством. Но для жизни я не могу заставить свою собственную раскадровку работать. Я использую код, найденный в этом ответе SO, чтобы вызвать новые представления и их контроллеры.
По сути, пользователю предоставляется 5 кнопок в начальном представлении, и щелчок по любой из них приведет к тому, что слева появится другое представление. Все работает нормально, любые NSButtons
, размещенные в новых представлениях, получают клики и делают то, что должны. Однако текстовые поля полностью недоступны: вы можете выбрать любой текст внутри, но не перезаписывать.
Я предполагаю, что я неправильно внедрил новый контроллер представления/представления в цепочку респондента (но тогда почему кнопки работают, а текстовые поля - нет?).
Разумное использование
self.resignFirstResponder()
и
newViewController.becomeFirstResponder()
всегда возвращайте истину. Я поместил их в различные функции начального жизненного цикла новых представлений, а также в фактические пользовательские NSViewControllerPresentationAnimator
в конце анимации.
Если переход является предустановленным листом, модальным, всплывающим окном или чем-то еще, то новое представление получает все действия/печать просто отлично. Так что это определенно мой код.
Я знаю, что это нехорошо, но я схожу с ума: может ли кто-нибудь привести пошаговый пример с использованием Swift?
[РЕДАКТИРОВАТЬ] Ааааааа! Похоже, что из-за того, что у меня была снята галочка с «Панель заголовка» в окне моего приложения, оно отказалось принимать первого ответчика. Позор, мне очень понравилось чистое окно без заголовка....