UIPickerView 作为 inputView 不隐藏在 iPad 上
Posted
技术标签:
【中文标题】UIPickerView 作为 inputView 不隐藏在 iPad 上【英文标题】:UIPickerView as inputView not hiding on iPad 【发布时间】:2013-08-14 12:05:41 【问题描述】:我已在我的应用程序中将UIPickerView
添加为inputView
到UITextField
。它在 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。这应该允许键盘关闭。
【讨论】:
我不明白,为什么工具栏应该是UIPicker
s inputview。此外,xcode 不允许我更改 UIPicker
s inputView
属性,因为它是只读的。此外,xcode 说,我的 UITextField
没有名为 resignFirstController
的选择器。【参考方案2】:
您需要使用UIPopOverController
来获得相同的结果。
This 教程可以帮助您入门。
【讨论】:
投反对票的原因?我相信对于 OP 试图实现的功能,UIPopOverController
更合适。以上是关于UIPickerView 作为 inputView 不隐藏在 iPad 上的主要内容,如果未能解决你的问题,请参考以下文章
UIPickerView 作为 inputView 在方向变化时搞砸了
当 UIPickerView 与 TextField 的 inputView 关联时,如何重置它?
MonoTouch UIButton、UIPickerView 和覆盖只读 InputView
UITextField inputview 属性出现问题,拉起自定义 UIPickerView