这里的初学者,希望是一个关于防止代码重复的简单问题。
如果您的代码检测到UITextView
中正在输入的内容(即用于验证目的的正则表达式),并且您希望该代码适用于不同的UITextView
个屏幕,你如何去做而不是仅仅在使用UIViewController
的每一个UITextView
中复制代码?
即
-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
答案 0 :(得分:0)
你可以专门为此目的上课。如果您需要执行特殊的UITextFieldDelegate
内容,则可以将此类子类化,也可以将自己的委托附加到其中。
@interface TextValidationDelegate : NSObject <UITextFieldDelegate>
@property (weak) id<UITextFieldDelegate> delegate;
@end
@implementation TextValidationDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
BOOL acceptable = YES;
// TODO: Calculate acceptability.
// ...
if (acceptable && [self.delegate respondsToSelector:@selector(textField:shouldChangeCharactersInRange:replacementString:)]) {
acceptable = [self.delegate textField:textField shouldChangeCharactersInRange:range replacementString:string];
}
return acceptable;
}
// TODO: Override other UITextFieldDelegate methods and pass through to self.delegate when it respondsToSelector.
@end