В нескольких частях моего приложения мне нужен элемент управления, в котором пользователь может ввести пароль. Поле пароля является безопасным, однако я хочу, чтобы пользователь имел возможность переключать поле на обычный текст и проверять наличие опечаток и т.д.
Само поле пароля не представляет проблемы. Я подклассифицировал NSSecureTextField, чтобы получить поведение, которое я хочу. Я делаю его связанным, поэтому я могу переключать отображение с другого элемента управления (скажем, флажок).
Теперь я хочу повторно использовать это в нескольких местах в моем приложении. Я могу просто использовать свое настраиваемое защищенное текстовое поле рядом с флажком везде, где мне это нужно. Но я предпочел бы группировать эти фрагменты вместе в компонент многократного использования.
Поэтому я создаю один с помощью построителя интерфейса:
Теперь, как я могу использовать это в разных окнах? Я добавил в свое окно компонент "Пользовательский вид" и задал его соответствующим образом:
Но во время выполнения я просто получаю пустое пространство.
1 - Предположительно, потому что мое представление определено в .xib - мне нужно что-то сделать в коде для загрузки моего экземпляра PasswordView из .xib; но что именно мне нужно делать? У меня проблемы с этим.
В частности:
-
Что такое процесс /API для загрузки экземпляра моего представления из .xib? Я пытаюсь найти документацию по этому вопросу.
-
Как только я загрузил экземпляр моего представления, как вставить его вместо моего "замещающего" пользователя? Предположительно, мне нужен выход на мой пользовательский взгляд, но что тогда? Я просто назначил свой загруженный экземпляр в розетку? Должен ли я добавить его в качестве подсмотра к розетке?
-
Где должна быть эта логика? Внутри init, внутри AwakeFromNib?
2 - Я знаю, что могу использовать NSViewController для своего пользовательского представления (пример) и загружать его таким образом. Но для этого мне действительно нужен контроллер вида? Кажется, мне просто нужно создавать автономные представления и легко создавать их... Но, возможно, это не способ Cocoa? Мне кажется, что должен быть простой способ составления представления из нескольких .xib без необходимости контроллера для каждого подвидного представления (которое может быть просто текстовым полем или кнопкой), но я просто не нахожу его...
Спасибо заранее.