iphone - ios 隐藏键盘

标签 iphone keyboard uitextfield uipickerview uipopovercontroller

我的问题是:实现“当 PickerView(位于 PopOver 内部)可见时隐藏键盘”的最佳方法是什么?

我想要什么:

我有一个 View ,其中大约有 15 个 TextFields。在 15 个中,假设有 7 个使用 UIPickerView (位于 UIPopOverController 中)来实现 DropDown 功能。我的问题是,当键盘可见并且我使用 UIPickerView 单击 UITextField 时,键盘不会隐藏。实现此目的的最佳方法是什么?

我尝试过的:

我尝试实现inputView,但它仅用于UIPickerView,而我在UIPopOverController中有UIPickerView。我认为这就是我无法使用 inputView 属性的原因。据此Question ,这是Apple的Bug。

更新:

看,我知道使用 textField Delegates ,我们可以实现这个。但我发现 UITextFieldinputView 属性,我发现它非常有趣,因为您必须将其分配为:

textField.inputView = pickerView;

但是我在 PopOver 中有 UIPickerView 。那么如何使用UITextField的这个inputView属性

有更好的主意吗?...

最佳答案

我想你不能直接这样做(如 inputView )。您可以尝试这个简单的解决方法:

1) 替换您的UITextFieldUIButton并将其连接到某个选择器( 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/

相关文章:

iphone - iOS : Errors while compiling projet with MGTwitterEngine

iphone - UIPopoverController 强制 iPad 进入纵向方向

jquery - 使用鼠标左、右、上、下与 Galleria javascript

当使用viewpagers显示软键盘时android向上移动布局

ios - 从动态创建的 UITextFields 访问文本值。 iOS

ios - 可编辑的 UITableView,单元格中的 UITextField,按下完成时存储数据

iphone - 如何向 iPhone 应用程序添加动画?

android - 如何强制重绘软键盘

ios - UIScrollView 不使用 UItextfields 滚动

iOS - 在 ViewController 之间共享数据