Как мне выполнить привязку к пользовательскому представлению в Какао с помощью Xcode 4?

Я новичок, когда дело доходит до написания приложений для Mac и работы с Какао, поэтому, пожалуйста, простите мое незнание .

Я хочу создать настраиваемое представление, которое предоставляет некоторые свойства, которые я затем могу привязать к NSObjectController. Поскольку это настраиваемый вид, очевидно, что инспектор привязок не перечисляет какие-либо свойства, которые я добавил в представление, которые я затем могу привязать с помощью Interface Builder.

Обратившись за помощью в Stackoverflow / Google, я наткнулся на несколько возможных решений, но ни один из них не подходит для моей ситуации. Первый предлагал создать IBPlugin, что означало бы, что мои привязки будут доступны в Bindings Inspector. Затем я мог бы привязать представление к контроллеру с помощью IB. По-видимому, IBPlugins не поддерживаются в Xcode 4, так что это невозможно. Я также предполагаю (возможно, ошибочно), что IBPlugins больше не поддерживаются, потому что в наши дни есть лучший способ делать такие вещи?

Второй вариант - привязать контроллер к представлению программно. Я немного не понимаю, как именно этого добиться. Потребуется ли создание подкласса NSObjectController, чтобы я мог добавлять вызовы для привязки к представлению? Нужно ли мне что-нибудь добавить к представлению, чтобы поддержать это? В некоторых примерах, которые я видел, говорится, что вам нужно переопределить метод привязки, а в других - нет.

Кроме того, я заметил, что некоторые примеры пользовательских представлений вызывают [self exposeBinding: @ "bindingName"] в инициализаторе. Насколько я знаю из различных источников, это связано с IBPlugins и мне не нужно делать, если я их не использую. Это правильно?

Я нашел сообщение на Stackoverflow здесь , в котором, кажется, обсуждается нечто очень похожее на мою проблему, но не было явного победителя относительно лучшего ответа. Последний комментарий noa от 12 сентября кажется интересным, хотя они упоминают, что вы должны позвонить exposeBinding: . Правильный ли этот комментарий? Действительно ли необходим вызов exposeBinding?

Приносим извинения за глупые вопросы. Любая помощь очень ценится.

14
задан Community 23 May 2017 в 12:07
поделиться