2010-06-25 1 views
20

가로보기에서 키보드를 가져 왔을 때보기가 위로 움직이는 ipad 앱이 있습니다. 키보드에서 완료를 누르면 textFieldShouldReturn 및 textFieldShouldEndEditing이 호출되며,이 경우보기를 아래로 이동합니다. shouldEndEditing.iPad "키보드 닫기"버튼 (오른쪽 하단), 어떻게 발생합니까? 어떤 기능이 눌려 졌다는 것을 알리는가?

사용자가 키보드 닫기 버튼을 누르면 키보드가 어지럽게 울리지 만보기가 이동 한 곳에서 계속 움직입니다.

해당 버튼을 눌렀을 때 어떻게 또는 어떤 기능이 호출되는지 알아야 함수를 textFieldShouldEndEditing으로 리디렉션 할 수 있습니다.

감사합니다.

답변

24

키보드 숨기기를 청취 할 수 있습니다. UIKeyboardWillHideNotification 알림. 키보드 버튼을 기각 누르고 당신이 하드웨어 키보드는 입력 액세서리보기가없는 경우 다음 willHide 만 호출됩니다 첨부하는 경우

예제 코드는 여기 http://developer.apple.com/iphone/library/samplecode/KeyboardAccessory/Listings/Classes_ViewController_m.html

+0

키보드를 감지했을 때이를 감지 할 수있었습니다. 텍스트 필드를 두어 키보드 숨김 코드에 코드를 반환해야합니다. 그런 다음 textfielddidendediting 코드를 호출합니다. 감사! – SolidSnake4444

+4

이 알림은 텍스트 필드가 첫 번째 응답자 상태를 잃어 버린 결과 일뿐입니다. 버튼의 실제 탭 이벤트를 감지 할 수있는 방법이 있습니까? 그러면 첫 번째 응답자 상태를 잃지 않고 다른 작업을 수행 할 수 있습니다. –

1

입니다. 어느 시점에서 willShow에서 조정해야합니다 (UIKeyboardFrameBeginUserInfoKeyUIKeyboardFrameEndUserInfoKey 키 사이에 음수 차이가 있음). 은 "낮은 키보드"버튼을 누르면

11

은의 텍스트 필드 위임 방법 :

-(BOOL)textFieldShouldReturn:(UITextField *)textField 

가 호출되지 않습니다. 은 "낮은 키보드"또는 "리턴 버튼"중 하나를 누를 때

는 :

-(void)textFieldDidEndEditing:(UITextField *)textField 

가 호출된다.

나는 그때 리턴 키를 알고 ... ... 다음 textFieldDidEndEditing 방법에 내가이 @"N"로 설정되어 있는지 확인 처음에 나는 textfieldShouldReturn 방법 @"N"로 설정 @""로 설정 변수 NSString *lowerKeyboardButtonPressed 사용 또는 아래쪽 키보드 키를 눌렀습니다. 내 textFieldDidEndEditing 메서드의 마지막 줄에 변수를 다시 @""으로 설정합니다.

+0

반환 단추는 해당 메서드 내에서 textFieldShouldReturn 및 resignFirstResponder를 구현하는 경우에만 textFieldDidEndEditing을 발생시킵니다. – inorganik

+0

나는 위의 답변이 훨씬 더 유용하다는 것을 알았습니다 ... "UIKeyboardWillHideNotification"을 사용하는 것이 핵심입니다 !!! –

+1

"NSString * lowerKeyboardButtonPressed 변수를 사용합니다 ..."-이 경우 BOOL 변수를 사용해야합니다. – northernman

관련 문제