В нескольких частях моего приложения мне нужен элемент управления, в котором пользователь может ввести пароль. Поле пароля безопасно, однако я хочу, чтобы пользователь имел возможность переключать поле на обычный текст и проверять наличие опечаток и т. Д.Многоразовый NSView от .xib
Само поле пароля не представляет проблемы. Я подклассифицировал NSSecureTextField, чтобы получить поведение, которое я хочу. Я делаю его связанным, поэтому я могу переключать отображение из другого элемента управления (скажем, флажок).
Теперь я хочу, чтобы повторно использовать это в нескольких местах в моем приложении. Я могу просто использовать свое настраиваемое защищенное текстовое поле рядом с флажком везде, где мне это нужно. Но я предпочел бы объединить эти штуки в компонент многократного использования.
Так я создаю один с помощью интерфейса строитель:
Теперь, как я могу использовать это в моих разных окнах? Я добавил компонент «пользовательский фильтр» к моему окну, и установить ее тип соответственно:
Но во время выполнения, я просто получаю пустое пространство.
1 - Предположительно, потому что мое представление определено в .xib - мне нужно что-то сделать в коде, чтобы загрузить экземпляр PasswordView из .xib; но что именно мне нужно делать? У меня проблемы с этим.
В частности:
Каков процесс/API для загрузки экземпляра моего взгляда из .xib? Я изо всех сил пытаюсь найти документацию по этому поводу.
Как только я загрузил экземпляр своего представления, как вставить его вместо моего «Заполнитель» Custom Custom? Предположительно, мне нужен выход на мой пользовательский взгляд, но что тогда? Я просто назначил свой загруженный экземпляр в розетку? Должен ли я добавить его в качестве подпрограммы к розетке?
Куда эта логика должна произойти? Внутри init, внутри AwakeFromNib?
2 - Я знаю, что могу использовать NSViewController для моего пользовательского представления (example), и загрузить его таким образом. Но для этого мне действительно нужен контроллер вида? Кажется, мне нужно просто создать отдельные взгляды и легко создать их ... Но, возможно, это не путь Какао? Мне кажется, что должен быть простой способ составления представления из нескольких .xib без необходимости контроллера для каждого подвидного представления (которое может быть просто текстовым полем или кнопкой), но я просто не нахожу его. ..
Заранее спасибо.
вы говорите, что вам нужно код, чтобы загрузить NSView всякий раз, когда вам это нужно, и поместить его в поле зрения ... ничего, что вы можете сделать из коробки с конструктором интерфейса –
@ Daij-Djan спасибо, но я добавил некоторые особенности к моему вопросу о своих конкретных точках прилипания – TheNextman
Можно ли загружать .xib из IB? – tofutim