当用户选择UITextField时,如何显示UIDatePicker而不是键盘?

Ben*_*n S 10 iphone keyboard cocoa-touch uidatepicker

我在表视图中有一个很好的干净UI,它有一些文本字段供用户填写.其中一个字段是用户的生日.

我想拥有它,以便当用户选择生日字段时,包含UIDatePicker的视图会出现,就像选择文本字段时不同的键盘一样.

可以这样做吗?我必须防止文本字段成为第一个响应者(以避免键盘出现),如果之前没有显示键盘,我将不得不动画视图向上滑动.

会以模态方式呈现视图吗?如果是这样我怎么去做呢?从文档中看来,模态视图仍然占据整个屏幕,我只想使用较低的216像素(键盘高度和UIDatePicker).

任何人都有关于如何做到这一点的任何提示?

End*_*age 33

旧问题,但这些天正确的方法是将UITextField的inputView设置为你在某处创建的选择器.像这样的东西:

UIPickerView *myPicker = [[UIPickerView alloc] init];
// set picker frame, options, etc...
// N.B. origin for the picker's frame should be 0,0

[myTextField setInputView:myPicker];
Run Code Online (Sandbox Code Playgroud)

当您去编辑UITextField时,iOS实际上只显示textField.inputView默认情况下键盘的任何视图,只要它是它的子类,您就可以创建任何您想要的视图UIView.

  • 应该接受这个答案而不是"UIView动画"解决方案.谢谢 (3认同)

Ode*_*Dov 7

关于动画,请看一下DateCell示例应用程序 - http://developer.apple.com/library/ios/#samplecode/DateCell/Introduction/Intro.html

在任何情况下,正确的方法是设置UITextField的inputView来显示选择器而不是键盘.这就是它的意图.更多相关内容: 如何像键盘一样呈现选择器视图?

干杯,

俄德.


Ben*_*ieb 5

我将通过从屏幕底部向上设置包含UIDatePicker,Done和Cancel按钮的视图来实现此功能.使用CoreAnimation,这应该很容易.