选择器作为弹出框内的输入视图
Posted
技术标签:
【中文标题】选择器作为弹出框内的输入视图【英文标题】:Picker as inputview inside popover 【发布时间】:2012-01-17 00:53:05 【问题描述】:我正在使用一个弹出框来显示一个 iPhone 大小的表格视图表单(与我的 iPhone 应用程序匹配)。在表格内,我有一个文本字段,其中有一个选择器设置为输入视图。当它以这种方式用作 iPad 时,选择器会像 iPad 键盘一样向上滑动。无论如何设置选择器在弹出框内向上滑动,就像在 iPhone 上一样?
【问题讨论】:
检查这个 .***.com/questions/9988165/… 【参考方案1】:您不能直接执行此操作(作为 inputView)。但是您当然可以使用这个简单的解决方法:
替换您的UITextField
为UIButton 并将其连接到某个选择器(buttonClicked:)。您可以使用UIButtonTypeCustom
对其进行样式设置,使其看起来像文本字段(设置图层的bordeColor, borderWidth, cornerRadius
等)
在 -(void)buttonClicked:(id)sender
中 - 切换您将用作 inputView 的相同 UIPickerView 以替换 UITextField
。您可以在普通实例变量中创建,只需记住设置委托和数据源。将它附加到根视图(您的UIViewController
在弹出窗口中显示)甚至UIWindow
并根据它是否已显示而对其进行动画处理(切换)。
在UIPickerViewDelegate
方法中更新按钮的文本(使用[button setTitle:<selected_value> forState:UIControlStateNormal]
):pickerView:didSelect...atIndex:` - 您还可以在此处隐藏选择器..
我已经做过很多次了,它在任何情况下都可以正常工作并且您可以完全控制选择器的显示方式和位置,而无需涉及UIResponder
链。
还没有为这种特殊情况找到更好的解决方案(iPad 键盘也喜欢操纵弹出框 - 它会将它们向上推)。
【讨论】:
以上是关于选择器作为弹出框内的输入视图的主要内容,如果未能解决你的问题,请参考以下文章