2009-11-09 8 views
6

Это не должно быть путать. У меня есть пользовательский UIView с связкой на элементах управления на нем. UILabels, кнопки и т. Д. Я создал этот Nib с помощью Interface Builder. Я хочу, чтобы иметь возможность позиционировать этот пользовательский uiview на другом UIView, используя конструктор интерфейса.Пользовательский UIView, построенный с помощью Interface Builder, доступный/позиционируемый с помощью Interface Builder

Как я могу связать свой пользовательский класс UIView с наконечником? initWithCoder получает вызов, но я хочу, чтобы этот класс загружался из nib.

Благодаря

+0

Вы нашли приемлемый ответ? Пожалуйста, отметьте это, спасибо. – JoePasq

+0

@JoePasq вы видите ЛЮБОЙ правильный ответ здесь? –

+0

На самом деле я никогда не получал эту работу, к сожалению, – Nader

ответ

3

Для этого вам необходимо создать подключаемый модуль для Interface Builder, который использует класс настраиваемого элемента управления. Как только вы создадите и установите свой плагин, вы сможете добавлять, перетаскивая, экземпляры вашего представления в другое окно или просматривать в Interface Builder. Чтобы узнать о создании модулей IB, см. Раздел Interface Builder Plug-In Programming Guide и главу о создании собственных элементов управления палитры IB из книги Аарона Хиллегасса, Cocoa Programming for Mac OS X.

Here является ссылкой на оригинат автора принятого ответа на вопрос a similar question.

+3

Получается, что это не поддерживается XCode 4.0+ –

0

Вы можете вставить UIViewController объект с помощью Interface Builder, а затем установить свойство "имя Nib" The UIViewController «s. Я не знаю, если это испортит вашу модель, но я думаю, что это единственный способ сделать то, что вы пытаетесь сделать.

+0

Привет, Кенни, спасибо за быстрый ответ. Я просто попробовал это. Я добавил UIViewController к моему основному представлению, установил его имя nib для nib пользовательского суб-представления и связал свойство представления uiviewcontroller с пользовательским представлением в построителе интерфейса. То же самое. Это просто не появляется. initWithCoder получает вызов в пользовательском представлении, но ничего не появляется. – Nader

0

В IB открывается инструмент проверки удостоверений (Command-4), затем выберите свое собственное представление и во всплывающем окне класса выберите имя своего пользовательского класса вместо общего UIView. Возможно, вы захотите также подключить его к ивару. В вашем ViewController объявите экземпляр вашего пользовательского класса с IBOutlet перед ним. Затем вернитесь и вызовите Инспектор подключений и подключите свое видение к ivar путем перетаскивания клика из реферирующего окна пользовательского вида к владельцу файла (который должен быть экземпляром вашего ViewController) и выбирая имя ivar.

Когда ваш NIB загружен, он должен создавать объект такого типа и подключать его к этой переменной.

2

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

How do I get a view in Interface Builder to load a custom view in another nib?