Как я могу создать такое же действие, как у UIButton или других контроллеров UI?
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];
...
- (void)buttonClicked
{
// Handler
}
Я хотел бы иметь класс, который может вызывать пользовательский обработчик. Как я могу создать этот класс и как я могу добавить собственный обработчик? (Мне бы хотелось, чтобы та же идея была с кнопкой Clicked.)
Чак, это именно то, что я спросил! Спасибо! Еще одна вещь, как я могу отправить один аргумент в мои действия. Я хотел бы иметь один параметр NSString в моем обработчике
Я бы хотел что-то вроде этого (но это не работает):
@interface Example : NSObject {
id target;
SEL action;
}
- (id)initWithTarget:(id)targetObject action:(SEL)runAction;
- (void)activate;
@end
@implementation Example
- (id)initWithTarget:(id)targetObject action:(SEL)runAction {
if (self = [super init]) {
target = targetObject;
action = runAction;
}
return self;
}
- (void)activate {
[target performSelector:action withObject:self withObject: @"My Message"];
}
@end
@interface ExampleHandler : NSObject {
}
-(void):init;
-(void)myHandler:(NSString *)str;
@end
@implementation ExampleHandler
-(void)init {
[super init];
Example *ex = [[Example alloc] initWithTarget: self action: @selector(myHandler) ];
}
-(void)myHandler:(NSString *)str {
NSLog(str);
}
@end