2012-05-23 4 views
0

안녕하세요, 저는 UITextField를 만들었습니다. 나는 그것을 단지 3 자로 제한하려고합니다. 비어있는 경우 버튼을 사용하지 않으면 버튼을 사용 중지합니다. 아무도 이것을하는 방법을 아는가?iOS UiTextField 제한 입력 및 키보드 닫기

나는 그것을 줬다. 그러나 내가 3 글자를 타이핑하면 3을 나타내지 만 keyboard.i를 닫지는 않을 것이고, 이것을하는 더 좋은 방법을 느낄 수는 없다. shouldChangeCharactersInRange : 내가

- (void)hideKeyboardAction { 

    NSLog(@"Hide"); 

    if([self.playerName length] >= 4){ 
     [self.nameTextField resignFirstResponder]; 
    } else if([self.playerName length] < 3) { 
     [self.addToScores setEnabled:FALSE]; 
    } 
} 

- (IBAction)hideKeyboard:(id)sender { 

    [self hideKeyboardAction]; 
} 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    self.playerName = [textField.text stringByReplacingCharactersInRange:range withString:string]; 

    if([self.playerName length] <4){ 
     [self hideKeyboardAction]; 
    } 

    if([self.playerName length] > 3){ 
     [self.addToScores setEnabled:FALSE]; 
    } 

    BOOL shouldStayOpen = !([self.playerName length] > 3); 
    return shouldStayOpen; 
} 
+0

사용자가 문자를 변경하고 싶다면 키보드를 팝업해야만 변경할 수 있습니다. –

답변

0

당신은에 textField의 텍스트 대체하지해야했던 heres는 무엇

replacementString을 :. textField에서 텍스트의 길이를 확인하고 범위의 길이와 replacementString의 길이를 비교하고 바꿀지 여부를 결정해야합니다 (YES/NO 반환). 바꾸기 후 계산 된 텍스트 길이에 따라이 방법에서 버튼을 활성화/비활성화 할 수도 있습니다.

그리고 내 의견으로는 키보드를 숨길 필요가 없습니다.