Вот как я это сделал. Я добавил это свойство в свой контроллер @interface
:
@property (nonatomic, strong) IBOutletCollection(UIBarButtonItem) NSArray *toolbarItems;
В @implementation
я добавил:
@synthesize toolbarItems;
Затем в перо у меня были все UIBarButtonItem
с за UIToolbar
. В навигаторе «Объекты» я выбрал их все, а затем переместил их из панели UIToolbar, чтобы они не могли видеть, что они являются частью. Затем для каждого из них я щелкнул правой кнопкой мыши и перетащил кружок рядом с «Новая коллекция исходящих ссылок» на «Владелец файла» и выбрал toolbarItems
в появившемся всплывающем окне. И теперь все UIBarButtonItems просто волшебным образом появляются в UIToolbar, больше никакой работы не требуется.
Увы, это не идеально. Теперь, когда UIBarButtonItems
не находится в UIToolbar
в перо, они являются полностью невидимым конструктором интерфейса. Они все еще находятся в навигаторе «Объекты», но на самом деле не видно, как они выглядят. Это похоже на неудачную ошибку (зарегистрированную как rdar: // 11234043 ).
Другая проблема заключается в том, что, насколько я могу судить, нет способа увидеть порядок элементов в IBOutletCollection
. Я добавил их в том порядке, в котором я хочу, чтобы они отображались справа налево, но это будет PITA, если мне когда-нибудь понадобится изменить порядок или добавить новые где-то посередине.
Здесь мы надеемся, что Apple добавляет более приятную поддержку IBOutletCollection
в конструктор интерфейсов с видимыми контейнерами какого-то рода.