UITExtField 수신에 대한 질문

3716 단어
회사 테스트에 따르면 사용자가 11개의 휴대전화 번호를 입력한 후 12개의 휴대전화 번호를 입력할 때 그에게 11개의 휴대전화만 입력할 수 있다고 제시했다. 이것은 제품의 수요에 부합되는지 말하지 않고 이 기능에 대해 어떻게 실현하고 만족시킬 것인가?
UITextFieldDelegate
@protocol UITextFieldDelegate 

@optional

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
- (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
- (void)textFieldDidEndEditing:(UITextField *)textField;             // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text

- (BOOL)textFieldShouldClear:(UITextField *)textField;               // called when clear button pressed. return NO to ignore (no notifications)
- (BOOL)textFieldShouldReturn:(UITextField *)textField;              // called when 'return' key pressed. return NO to ignore.

@end

대리인이 수요를 충족시킬 방법이 없어서 어떻게 해야 할지 알림이 왔어요.
UITextFieldNotification
UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;

스니퍼 추가는 간단합니다.
    /**
     *    UITextField    
     *
     *  @param textFieldTextDidChange          
     *
     *  @param name UITextFieldTextDidChangeNotification(    )
     *
     *  @param object (       )
     */
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldTextDidChange) name:UITextFieldTextDidChangeNotification object:telephone];

감청 방법
- (void)textFieldTextDidChange
{
        if(telephone.text.length > 11 ){
            NSRange range = NSMakeRange(0, 11);
            telephone.text = [telephone.text substringWithRange:range];
            [self endEditing:YES];
            [MBProgressUtil showToast:@"       11 " inView:self];
        }  
}

이로써 수요가 실현되고 만족되므로 앞으로 텍스트 추이를 어떻게 감청하든지 대리 방법이 부족할 염려가 없습니다!
부록:
UITextViewDelegate
@protocol UITextViewDelegate 
@optional

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

- (void)textViewDidBeginEditing:(UITextView *)textView;
- (void)textViewDidEndEditing:(UITextView *)textView;

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
- (void)textViewDidChange:(UITextView *)textView;

- (void)textViewDidChangeSelection:(UITextView *)textView;

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);
- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange NS_AVAILABLE_IOS(7_0);

@end

#UITextViewNotification  

UIKIT_EXTERN NSString * const UITextViewTextDidBeginEditingNotification;
UIKIT_EXTERN NSString * const UITextViewTextDidChangeNotification;
UIKIT_EXTERN NSString * const UITextViewTextDidEndEditingNotification;


~nice
  • 궁금한 점이 있으면 평론 구역에서 함께 토론할 수 있습니다.
  • 잘못된 점이 있으면 지도를 환영합니다!

  • 참고: 이 문서는 iHTCboy's blog에서 발행되었으며 만약에 옮겨 싣는다면 출처를 밝혀 주십시오.

    좋은 웹페이지 즐겨찾기