2014-04-25 6 views
0

사용자가 PeoplePicker에서 검색 막대를 클릭 한 다음 취소하면 iPad에서 ABPeoplePickerNavigationController가 매우 이상한 UI 버그로 보입니다 (가로 방향). 사직하지 않고 사람들 피커의 UI가 엉망이된다. 여기서 버그의 사진이다UI 모달 양식 시트로 표시 할 때 ABPeoplePickerNavigationController가있는 버그

enter image description here

ABPeoplePickerNavigationController 다음 코드를 사용 모달 폼 시트에 표시된다

- (void) openAddressBook 
{ 
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 
    picker.peoplePickerDelegate = self; 
    picker.delegate = self; 
    [picker setModalPresentationStyle: UIModalPresentationFormSheet]; 
    [self presentViewController:picker animated:YES completion: nil]; 
} 

UI를 사용자가 검색 도청까지 예상 같다 필드는 키보드를 가져온 다음 검색 필드 밖으로 나가며 아이폰처럼 키보드를 사퇴하지 않습니다. 또한 사용자가이 모드에서 연락처 목록을 스크롤하면 A 헤더가 현재 검색 바 바로 아래에있는보기의 상단이 아닌 모든 문자 헤더 (즉, A 헤더)가 고정됩니다.

여기에 keybaord가 사임하지 않는 이유가 있습니까?

ABPeoplePickerNavigationController가 하위 클래스가 아니므로 디버깅하는 데 어려움을 겪고 있으므로 도움을 주시면 대단히 감사하겠습니다.

답변

0

이것이 바로 UIModalPresentationFormSheet의 작동 방식입니다. 기본적으로 첫 번째 응답자가 사임 할 때 키보드를 닫지 않습니다. 분명히 ABPeoplePickerNavigationController는 이런 방식으로 사용될 것으로 기대하지 않습니다. 내 제안 : 그렇게하지 마십시오. 팝 오버 또는 정상적인 제시된보기를 사용하십시오. (내 경험은 popover가 더 좋아 보인다는 것입니다.)

+0

흠 (hemm) 미적 목적을 위해 모달 폼 시트에 이것을 제시하는 것이 가장 좋을 것입니다.이 이벤트를 가로 채고 resignFirstResonder 같은 것을 강제 할 방법이 없습니까? – Glavid

+0

내가 말한 것을 읽으십시오. 당신은'resignFirstResponder'를 얻습니다. 그러나'UIModalPresentationFormSheet'에서는 키보드를 닫지 않습니다. 그것이 당신이 원하는 행동이 아니라면, 그렇게하지 마십시오. 정말로, 당신은 나 자신을 반복하게하고있다. – matt

+0

충분합니다. 다음은이 질문에 대한 다른 모든 사람들을위한 정보입니다. http://stackoverflow.com/questions/3372333/ipad-keyboard-will-not-dismiss-if-modal-viewcontroller-presentation-style- is-uim – Glavid

0

[self.view endEditing : YES]; 당신이 끝났을 때