2014-02-19 2 views
0

현재 iOS 7 용 프로그램을 프로그래밍하고 있습니다.하지만 최근에 흥미로운 오류가 발생했습니다. 내 UIView 중 하나에서 3 정상적인 UITextFields 및 편집을 시작할 때 resignFirstResponder 두 개의 다른 UITextFields 있습니다. UIToolPicker와 UIPickerView 및 UIToolbar를 보여줍니다. 내가 겪고있는 오류는 처음 3 개의 텍스트 필드 중 하나를 타이핑하고 UIControl (backgroundTapped :)을 클릭하지 않고 편집을 끝내는 텍스트 필드를 클릭하면 키보드가 사라지지 않는다는 것입니다. 텍스트 필드가 "canResignFirstResponder"로 firstResponder 상태를 사퇴하고 있는지 여부를 확인하기 위해 로그를 추가하고 "1"을 반환했지만 키보드가 사라지지 않습니다. 심지어 상위 3 개의 텍스트 중 하나를 클릭 할 때까지 뷰가 변경 될 때까지 필드를 클릭하고 배경을 클릭하십시오. 내 showRunTypePicker의 시작 : 여기 UITextField 키보드가 사라지지 않음

내 textFieldDidBeginEditing입니다 방법 :

textFieldDidBeginEditing :

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    [textField becomeFirstResponder]; 

    if (textField.tag == 3005) { 
     //[textField resignFirstResponder]; 
     //[self.view endEditing:YES]; 

     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.25]; 

     [self showRunTypePicker:self]; 

     [UIView commitAnimations]; 
    } 
} 

showRunTypePicker : 나는 알아낼 수 없습니다

- (IBAction)showRunTypePicker:(id)sender 
    { 
     BOOL canResign = [runTypeField canResignFirstResponder]; 
     NSLog(@"canResign: %hhd", canResign); 

     [runTypeField endEditing:YES]; 
     [runTypeField resignFirstResponder]; 

     [[self view] endEditing:YES]; 
     [pickerView endEditing:YES]; 
     [pickerView setHidden:YES]; 
     [toolbar setHidden:YES]; 

     [distanceField endEditing:YES]; 

     ... 
    } 

은 문제가 무엇인지 . 아무도 이것에 나를 도울 수 있습니까?

편집 : 이제 작동 중입니다. [self showRunTypePicker : self]를 [self showRunTypePicker : textField]로 설정하고 textFieldShouldBeginEditing으로 옮겼습니다. 이제 키보드가 올바르게 사라집니다.

+0

있습니다. 코드에 버그가 있습니다. –

답변

0

코드에 버그가 있습니다.

하지 당신이 실제로해야한다고 생각

[self showRunTypePicker:self]; 

가 수행이 줄을 읽어

여기
[self showRunTypePicker:textField]; 

당신의 의도는 때 탭 특정 텍스트 필드 키보드를 사임하는 것입니다. 그래서 당신은 실제로 그 태그는, UITextField로 보낸 사람을 사용하고 부울 검사를 수행하기 위해 3005

시도 인

textField 

인스턴스를 통과해야한다.

희망이 있습니다.

관련 문제