2014-11-03 32 views
0

這裏初學者,希望有一個關於防止代碼重複的簡單問題。UITextView使用代碼重用的驗證

如果您的代碼檢測到UITextView(即用於驗證的正則表達式)中輸入的內容,並且您希望該代碼在不同屏幕上應用於多個UITextView,那麼您如何去做不僅僅是在每個使用UITextViewUIViewController中複製該代碼?

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

在某些實用程序對象上有驗證類方法。 – 2014-11-03 16:59:31

+0

有共享代表嗎? – 2014-11-03 17:01:38

+0

@IanMacDonald,你是指AppDelegate? – SimplyLearning 2014-11-03 18:15:43

回答

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