То, что вы делаете, выглядит хорошо, но для этого конкретного примера есть более чистое решение:
// MyTextField.h
@interface MyTextField : UITextField
@end
// MyTextField.m
@interface MyTextField ()
- (void)myTextFieldDidChange:(UITextField *)textField;
@end
@implementation MyTextField
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self addTarget:self action:@selector(myTextFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
}
return self;
}
- (void)myTextFieldDidChange:(MyTextField *)myTextField {
// Do custom stuff here.
}
@end
Проверьте UIControlEvents
ссылку .