2011-08-16 3 views
0

여기에 매우 이상한 버그가 있습니다. 이것이 바로 시나리오입니다. 내 jQuery과에 텍스트 필드 중 하나에iPhoneSDK : 키보드가 열린 상태에서 detailviewcontroller를 누른 후 이상한 버그가 발생했습니다.

-I 클릭, uikeyboard는

나타납니다 - 나는 화면 (비활성화 한)의 다른 텍스트 필드를 클릭 일을 누르지 않고 다음

-이 비활성화 텍스트 필드가,

-I가 detailview 다시반환에 내 일을 수행합니다 detailview 컨트롤러를 밀어

-Surpri ze! 메인 UITableview 더 이상 아래로 스크롤 할 수 없습니다! 그래서 더 이상 하단 셀을 편집 할 수 없습니다!

이런 일이 발생하지 않습니다. IF 편집을 마쳤으므로 (키보드를 닫음) 상세보기를 클릭하십시오. 이제는 효과가 있습니다.

다른보기로 전환하기 전에 resignfirstResponder가 호출되지 않았으므로 tableview에있는 모든 텍스트 필드에이 msg를 보내려고했습니다. 그러나 더 나 빠졌습니다.

detailviewcontroller를 누르기 직전에 아래에이 줄을 추가하려고 시도했지만 작동하지 않았습니다. 이것은 숫자 패드를 정상적으로 사퇴시키기 위해 호출하는 이유입니다. 사용자 정의에서 호출되면 작동합니다. "done "버튼을 nuber 패드

[[self view] endEditing:YES]; 

를 닫 그리고 이것은 내가 uikeyboards가 cellforRowAtIndex 방법

if(somelogic){  
    cell.textField.keyboardType=UIKeyboardTypeNumberPad;     
    [self resignFirstResponder];   
    [self becomeFirstResponder];   
} 

else{  
    cell.textField.keyboardType=UIKeyboardTypeDefault; 
    [self resignFirstResponder];   
    [self becomeFirstResponder];   
} 

모든 아이디어의 내용에 따라 설정하는 방법입니까?

답변

1

상세보기 컨트롤러를 누르기 전에 [currentTextField resignFirstResponder]으로 전화하십시오.

currentTextField을 다음 방법으로 설정하십시오.

- (void)textFieldDidBeginEditing:(UITextField *)textField { 

    currentTextField = textField; 
    // Your code here 
} 
+0

나는 시도했으나 작동하지 않았다. 왜냐하면 currentTextField도 키보드가 아닌 이전의 것이기 때문이다. –

+0

키보드로 시도해도 여전히 작동하지 않음 –

+0

currentTextField를 올바르게 설정 했습니까? 내 업데이트 된 답변보기 – EmptyStack

0

오캄의 면도기. 완료 버튼을 클릭하지 않도록하십시오.

투명 UIButton을 전체 화면에 배치하십시오. [textField becomeFirstResponder]에 전화 할 때 보여주십시오. 사람들이 화면을 터치하고 textFields를 전환하지 못하도록하거나 도청 당했을 때 [textField resignFirstResponder]으로 전화하지 못하게 할 수 있습니다.

+0

내 업데이트 된 질문을 볼 수 있습니까 –

+0

코드에서 textFields는 viewController가 아니라 resignFirstResponder 여야합니다. –

+0

S.O에서이 해킹을보고 잘 작동하지만, 내가 [cell.textfield resignFirstResponder]로 작성하면 코드가 더 이상 작동하지 않으며 키보드가 텍스트 필드를 편집하지 않고도 juts 주위로 날아갈 것을 제안합니다. –

관련 문제