当在模态表单中呈现时,具有ABPeoplePickerNavigationController的UI Bug

时间:2014-04-25 17:58:31

标签: ios objective-c modalviewcontroller abpeoplepickerview

我看到iPad上的ABPeoplePickerNavigationController有一个非常奇怪的UI错误(在横向上),当用户点击PeoplePicker中的搜索栏然后取消时,键盘没有被取消,人员选择器的UI全部被取消弄乱。这是一张错误的照片:

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是预期的,直到用户点击搜索字段,然后调出键盘,然后取消搜索字段,这不会像在iPhone上那样重新调整键盘。此外,当用户在此模式下滚动联系人列表时,所有字母标题(即A标题)都固定在A标题当前的位置,而不是在搜索栏正下方的视图顶部。

有没有理由说keybaord没有在这里辞职?

我在调试时遇到困难,因为ABPeoplePickerNavigationController不是可子类的,所以非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

这就是UIModalPresentationFormSheet的工作原理:默认情况下,当第一个响应者被辞职时,它不会解除键盘。显然ABPeoplePickerNavigationController不希望以这种方式使用。我的建议是:不要这样做。使用弹出窗口或正常显示的视图。 (我的经验是,弹出窗口看起来更好。)

答案 1 :(得分:0)

使用[self.view endEditing:YES];当你完成时