В Objective C и инфраструктуре какао нет ничего лучше, чем объявление события (как вы сделали бы, например, в C #), такое же поведение события достигается с помощью шаблона делегата (так все классы какао обрабатывают события), поэтомудля реализации пользовательских событий с шаблоном делегата вы можете сделать это, например:
Объявления интерфейса протокола и пользовательского класса:
@protocol myDelegate <NSObject>
-(void)valueChanged:(double) value;
@end
@interface UAKTestDelegate : UIPickerView
@property(weak) id<myDelegate> delegate;
@end
Где-то в реализации (запустить событие):
//Example of firing the event ....
if([[self delegate] respondsToSelector:@selector(valueChanged:)]) {
[[self delegate] valueChanged:1.0];
}
Итак, эта первая часть ответа должна касаться первых двух вопросов в вашем посте (создание и запуск пользовательских событий), но ответна третий ответ просто вы не можете ...
Xcode (в данном случае построитель интерфейса) знает о событиях, которые UIControl (или его подкласс) реализует, но нет никакого способа рассказать ему о ваших собственных пользовательских событиях.
Так что я думаю, что в вашем случае (если вы можете) вы можете создать подкласс непосредственно UIDatePicker и evпереопределить значение valueChanged, если вам нужно.