2017-12-21 38 views
0

비밀번호 입력에 고정 된 숫자 (즉, 6 자리 이상)를 입력하고 싶습니다. 어떻게 구현할 수 있습니까? 모르겠다. 도와주세요. 아래 그림과 같이 구현하고 싶습니다.공백이 있고 숫자가 고정 된 텍스트 필드 비밀번호 필드

enter image description here

+0

다음 링크와 같은 것을 사용할 수 있습니다. https://stackoverflow.com/a/18711677/1092501 –

답변

0

감사 @Hardik 샤. 그 링크에서 나는 코드를 수정하고 내가 원하는 내 대답을합니다. 어느 솔루션이 필요한 경우 해당 솔루션을 제공합니다.

1. 텍스트 필드가 비어있을 때 UITextField가 삭제 버튼 이벤트를 지원하지 않으므로 해당 답변에 대해 UITextView를 사용해야합니다.

2. UITextViewDelegate를 가져오고 textview 대리자를 self에 할당하십시오. 텍스트 뷰의 스토리 보드에서 태그 또는 프로그램에서 3.put

self.yourTextView.delegate = self; 

1 - 당신은 어떻게 당신이 필요로하는 분야를 텍스트 뷰 많은 (여기 내가 6 텍스트 뷰가 필요합니다).

4. UITextViewDelegate 메서드 (textView : shouldChangeTextInRange : replacementText :)를 구현하고 아래 코드를 추가하십시오. 나는 여기에 내 방법을 주었다.

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if ((textView.text.length == 1) && (text.length == 1)) 
    { 
     NSInteger nextTag = textView.tag + 1; 
     UIResponder* nextResponder = [textView.superview viewWithTag:nextTag]; 
     if (!nextResponder) 
      return NO; 

     if (nextResponder) 
      [nextResponder becomeFirstResponder]; 

    } 
    else if ((textView.text.length == 0) && (text.length == 0)) 
    { 
     NSInteger nextTag = textView.tag - 1; 
     UIResponder* nextResponder = [textView.superview viewWithTag:nextTag]; 
     if (!nextResponder) 
      return NO; 

     if (nextResponder) 
      [nextResponder becomeFirstResponder]; 
    } 

    return YES; 
}