UIPickerView 作为 inputView 不隐藏在 iPad 上

Posted

技术标签:

【中文标题】UIPickerView 作为 inputView 不隐藏在 iPad 上【英文标题】:UIPickerView as inputView not hiding on iPad 【发布时间】:2013-08-14 12:05:41 【问题描述】:

我已在我的应用程序中将UIPickerView 添加为inputViewUITextField。它在 iPhone 上完美运行,但是当我在 iPad 上运行相同的代码时,我的 pickerView 不会在单击 done 按钮时隐藏。 一些代码:

picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
picker.delegate = self;
picker.dataSource = self;
[picker setShowsSelectionIndicator:YES];
self.someInput.inputView = provincePicker;

UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
    initWithBarButtonSystemItem:UIBarButtonSystemItemDone
    target:self action:@selector(inputAccessoryViewDidFinish)];
[pickerToolbar setItems:[NSArray arrayWithObject:doneButton] animated:NO];
self.someInput.inputAccessoryView = pickerToolbar;

我必须更改(添加?)什么才能使选择器消失? 编辑:inputAccessoryViewDidFinish 是我的方法,它只是调用

[self.someInput resignFirstResponder]

【问题讨论】:

是 inputAccessoryViewDidFinish 你的方法吗? 是的,我刚刚更新了添加相关信息的问题 工具栏出现在选择器上好吗? 在我的回答中查看我的编辑 正常显示。我知道我应该避免在这里设置绝对值,但这只是让我的应用程序与 iPad 兼容的开始,我稍后会解决这个问题。 【参考方案1】:
-(void)inputAccessoryViewDidFinish


   [self.someInput resignFirstResponder];

编辑: 实施 -disablesAutomaticKeyboardDismissal 并返回 NO。这应该允许键盘关闭。

【讨论】:

我不明白,为什么工具栏应该是UIPickers inputview。此外,xcode 不允许我更改 UIPickers inputView 属性,因为它是只读的。此外,xcode 说,我的 UITextField 没有名为 resignFirstController 的选择器。【参考方案2】:

您需要使用UIPopOverController 来获得相同的结果。

This 教程可以帮助您入门。

【讨论】:

投反对票的原因?我相信对于 OP 试图实现的功能,UIPopOverController 更合适。

以上是关于UIPickerView 作为 inputView 不隐藏在 iPad 上的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 作为 inputView 在方向变化时搞砸了

当 UIPickerView 与 TextField 的 inputView 关联时,如何重置它?

MonoTouch UIButton、UIPickerView 和覆盖只读 InputView

UITextField inputview 属性出现问题,拉起自定义 UIPickerView

UITextField inputview 弹出 UIPickerView 在pickerview中显示问号

点击 TableViewCell 以显示 UIPickerView