События для пользовательского UIView

В моем случае сработало следующее решение.

  1. Удалить RELEASE каталог & amp; Файл resolver-status.properties в вашем локальном репозитории Maven в каталоге .m2 /../ maven-archetype-quickstart.
  2. Создание проекта Maven в Eclipse или STS (Spring Tool Suite). Он автоматически загрузит быстрый старт архетипа & amp; работать как положено.

Я надеюсь, что это может кому-то помочь.

6
задан 25 May 2009 в 13:33
поделиться

2 ответа

Пожалуйста, поясните: вы имеете в виду, что вы хотите, чтобы Interface Builder предлагал вашим контроллерам представления подключать настраиваемые события, которые будет генерировать ваш подкласс представления (так же, как элементы управления Button позволяют вам подключаться Touch Inside и т. Д.)?

Если вам нужен этот тип функциональности, вам нужно будет использовать обобщенное свойство «делегат» в вашем представлении в сочетании с протоколом.

@protocol RadioDialDelegate
-(void)dialValueChanged:(id)sender
@end

@interface RadioDial
{
    id<RadioDialDelegate> radioDelegate;
}
@property (nonatomic, assign) IBOutlet id<RadioDialDelegate> radioDelegate;

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

if([radioDelegate respondsToSelector:@selector(dialValueChanged:)]) {
    [radioDelegate dialValueChanged:self];
}
5
ответ дан 16 December 2019 в 21:45
поделиться

Создайте метод в вашем контроллере представления (если ничего другого, у вас должен быть RootViewController в вашем проекте). Скажем, ваш метод -

  -(void) buttonClicked { code code code }

. В заголовочном файле контроллера (например, RootViewController.h) вы затем помещаете:

  -(IBAction) buttonClicked;

И в IB вы щелкаете правой кнопкой мыши по кнопке / переключателю / любому другому. Вы увидите список событий, и вы можете перетащить ОТ соединителя события, которое вы хотите, чтобы ваш контроллер получил, к объекту в IB, который представляет контроллер (возможно, First Responder). Это зависит от того, как настроена ваша структура IB, но она должна быть простой.

Другой альтернативой является научиться создавать UIViews программно и на время забыть о IB. Мнения по поводу того, лучше ли научиться пользоваться IB с самого начала, разделились, или Лучше научиться делать все в коде и отложить IB на потом. В любом случае в какой-то момент необходимо изучить оба способа настройки интерфейса.

3
ответ дан 16 December 2019 в 21:45
поделиться