我的问题是:实现“当 PickerView(位于 PopOver 内部)可见时隐藏键盘”的最佳方法是什么?
我想要什么:
我有一个 View ,其中大约有 15 个 TextFields
。在 15 个中,假设有 7 个使用 UIPickerView
(位于 UIPopOverController
中)来实现 DropDown 功能
。我的问题是,当键盘可见并且我使用 UIPickerView
单击 UITextField
时,键盘不会隐藏。实现此目的的最佳方法是什么?
我尝试过的:
我尝试实现inputView
,但它仅用于UIPickerView
,而我在UIPopOverController
中有UIPickerView
。我认为这就是我无法使用 inputView
属性的原因。据此Question ,这是Apple的Bug。
更新:
看,我知道使用 textField Delegates ,我们可以实现这个。但我发现 UITextField
的 inputView
属性,我发现它非常有趣,因为您必须将其分配为:
textField.inputView = pickerView;
但是我在 PopOver
中有 UIPickerView
。那么如何使用UITextField
的这个inputView属性
?
有更好的主意吗?...
最佳答案
我想你不能直接这样做(如 inputView
)。您可以尝试这个简单的解决方法:
1) 替换您的UITextField
与 UIButton
并将其连接到某个选择器( buttonClicked
:)。您可以使用UIButtonTypeCustom
能够对其进行样式设置,使其看起来像文本字段(设置图层的 bordeColor、borderWidth、cornerRadius 等)
2) 在这个方法中-(void)buttonClicked:(id)sender
- 切换相同的UIPickerView
您将用作 inputView 来替换 UITextField
。您可以在普通实例变量中创建,只需记住设置 delegate 和 dataSource 即可。将其附加到 Root View (您的 UIViewController
在弹出窗口中显示),甚至 UIWindow
并根据它是否已经显示来将其动画化或退出(切换)。
3) 更新 [button setTitle:<selected_value> forState:UIControlStateNormal]
中的按钮文本(通过使用 UIPickerViewDelegate
)方法: `pickerView:didSelect...atIndex: - 您还可以在此处隐藏选择器..
希望这会有所帮助。
关于iphone - ios 隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579378/