Comment créer une action similaire à UIButton ou à d'autres contrôleurs d'interface utilisateur?Événement + gestionnaire
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:button];
...
- (void)buttonClicked
{
// Handler
}
Je voudrais avoir une classe qui peut appeler un gestionnaire personnalisé. Comment puis-je créer cette classe et comment puis-je ajouter un gestionnaire personnalisé? (Je voudrais même idée avec ButtonClicked.)
Chuck, qui est exactement ce que j'ai demandé! Je vous remercie! Une dernière chose, comment puis-je envoyer un argument à mon action. Je voudrais avoir un paramètre NSString dans mon gestionnaire
Je voudrais quelque chose comme ça (mais ça fonctionne pas):
@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