具有代码可重用性的UITextView验证

时间:2014-11-03 16:58:13

标签: ios xcode uitextview nsregularexpression

这里的初学者,希望是一个关于防止代码重复的简单问题。

如果您的代码检测到UITextView中正在输入的内容(即用于验证目的的正则表达式),并且您希望该代码适用于不同的UITextView个屏幕,你如何去做而不是仅仅在使用UIViewController的每一个UITextView中复制代码?

-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

1 个答案:

答案 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