Как и в этом вопросе, я пытаюсь установить первого ответчика на первый из трех NSTextField
в очень простом приложении. Совет там (установить первого респондента Window
в конструкторе интерфейса), похоже, больше не применяется, по крайней мере, когда задействованы раскадровки. Объект Window
действительно имеет выход initialFirstResponder
, но я не могу найти способ установить его с помощью перетаскивания, перетаскивания ctrl-drag и т. д. в любом направлении в/из NSTextField.
Структура, которую мне предоставил IB, включает сцену оконного контроллера (само по себе просто пустое окно), связанную со сценой контроллера представления (которая, в свою очередь, содержит мой набор NSTextField
и меток).
Я подозреваю, что есть какое-то предположение/ассоциация по умолчанию, которую Xcode запекает в моем приложении, что заставляет контроллер Window автоматически загружать определенное представление во время выполнения, и поэтому невозможно связать первоначальный ответчик, о котором он не знает при сборке время. Что затем заставляет меня задаться вопросом, какой вызов жизненного цикла для какого объекта является правильной точкой для вызова self.view.window.initialFirstResponder = myTextField
, пока не стало слишком поздно, и как наиболее правильно получить доступ к этому объекту. viewWillAppear
или viewDidLoad
в контроллере представления кажутся правильными, но ни один из них, похоже, не имеет надежного эффекта (первоначально активный NSTextField
меняется от запуска к запуску, иногда появляется для отслеживания изменений кода, но в любом случае нет).
Я разместил код на GitHub.