Принуждение Interface Builder к изменению класса объектов (UIButton- ›UIControl)

У меня есть UIView, заполненный кнопками, которые все красиво связаны с действиями и выходами. Однако, обладая бесконечной мудростью, я решил, что мне бы хотелось, чтобы поведение кнопки было другим, и создал подкласс UIControl.

Мой план состоял в том, чтобы зайти в Interface Builder, изменить класс кнопок на мой новый подкласс UIControl, а затем начать работу. Это сохранит все связи розеток и действий.

В IB (View Identity Inspector), когда я ввожу свой подкласс UIControl в поле класса, он возвращается к UIButton, когда я выхожу на вкладку. Любой подкласс UIButton работает, но не UIControl. Я могу спуститься по дереву наследования, но не вверх ....

Первый план состоял в том, чтобы перейти на XCode и временно изменить суперкласс моего нового элемента управления на UIButton, изменить «класс» моих кнопок IB, а затем снова изменить суперкласс кода XCode на UIControl. IB принял и изменил класс, но при запуске приложения я получаю невидимые кнопки. Инспектор атрибутов IB по-прежнему отображает его в виде кнопки.

Создание элемента управления с нуля и изменение проводки работают, но я надеялся не перепрограммировать все кнопки, если этого можно было бы избежать. (Это изменение, которое я надеялся применить в нескольких приложениях, так что это немного болезненнее, чем кажется)

Кто-нибудь знает способ обойти это?

огромное спасибо!


person Oldmicah    schedule 28.07.2010    source источник
comment
забыл мои основы. Это происходит в XCode / IB 3.2.3, спасибо!   -  person Oldmicah    schedule 28.07.2010


Ответы (1)


Я опаздываю на год, но, может быть, это кому-то поможет в будущем. Возможно, вы могли бы открыть .xib в текстовом редакторе и выяснить, какой текст вам нужно будет изменить, чтобы заставить его работать (сначала попробуйте его в образце проекта), а затем используйте поиск и замену, чтобы исправить все сразу.

person Zev Eisenberg    schedule 14.07.2011