텍스트 필드에 한 문자를 입력하자마자 키보드를 반환해야하는 iPhone 응용 프로그램을 개발 중입니다. 이것을 달성하는 방법은 몇 가지 해결책을 제안하십시오.텍스트 필드에 한 문자 입력시 키보드 반환
감사합니다. TextField를
텍스트 필드에 한 문자를 입력하자마자 키보드를 반환해야하는 iPhone 응용 프로그램을 개발 중입니다. 이것을 달성하는 방법은 몇 가지 해결책을 제안하십시오.텍스트 필드에 한 문자 입력시 키보드 반환
감사합니다. TextField를
1 단계에서 문자열의 당신의 길이를 확인 : 프로토콜 UITextFieldDelegate를 구현하는 클래스를 만듭니다
@interface TheDelegateClass : NSObject <UITextFieldDelegate>
2 단계 : 구현에서 메소드를 오버라이드 (override) - (BOOL을) textField : (UITextField *) textField shouldChangeCharactersInRange : (NSRange) range replacementString : (NSString *) string
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// newString is what the user is trying to input.
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if ([newString length] < 1) {
// If newString is blank we will just ingore it.
return YES;
} else
{
// Otherwise we cut the length of newString to 1 (if needed) and set it to the textField.
textField.text = [newString length] > 1 ? [newString substringToIndex:1] : newString;
// And make the keyboard disappear.
[textField resignFirstResponder];
// Return NO to not change text again as we've already changed it.
return NO;
}
}
3 단계 : 대리자 클래스의 인스턴스를 UITextField 대리자로 설정하십시오. 도움을
TheDelegateClass *theDelegate = [[TheDelegateClass alloc] init];
[theTextField setDelegate:theDelegate];
추가 통지 생성 코드
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeText:) name:UITextFieldTextDidChangeNotification object:textField];
와 내가 당신을 찾고 싶어이 추측
- (void) changeText: (id) sender;
{
if ([textField.text length] == 1)
{
[textField resignFirstResponder];
}
}
감사하지만 나는 버튼을 도움을 –
을 구현?
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[add your method here];
return YES;
}
또는 당신은 당신이 textFieldDidBeginEditing에 코드를 넣을 수 있습니다 편집을 시작으로 즉시 사임 할 경우 : 대리자 메서드
[textField resignFirstResponder];
확인이 링크
을 당신은 텍스트 델리게이트 방법으로 코드를 작성해야한다.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([textField.text length] == 1){
[textField resignFirstResponder];
}
다음 textFieldDidBeginEditing
- (void)textFieldDidBeginEditing:(UITextField *)textField{
if([textField.text length] == 1){
[textField resignFirstResponder];
}
}
감사를 수행 압박 wihout 최대한 빨리 텍스트 필드에 하나의 문자를 입력 할 때 키보드를 반환하고자하지만 난 최대한 빨리 하나의 문자를 입력 할 때 키보드를 반환하려면 텍스트 필드에서 done 버튼을 누르기 만하면됩니다. –
shouldChangeCharactersInRange : (NSRange) range replacementString : (NSString *) string 하나씩 검사합니다. – Hiren
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([textField.text length] == 1){
[textField resignFirstResponder];
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
if([textField.text length]==1)
{
// here perform the action you want to do
}
}
제안 해 주셔서 감사합니다. –