繁体   English   中英

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

[英]How can I show a UIDatePicker instead of a keyboard when a user selects a UITextField?

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

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

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

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

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

旧问题,但这些天正确的方法是将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];

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

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

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

干杯,

俄德。

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

如果您不想接受键盘的用户输入,为什么还要使用文本字段? 而是使用UILabel子类(您覆盖touchesBegan / Ended:withEvent:显示UIDatePicker的方法集)或UIButton(其中您的操作是滑动UIDatePicker的方法)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM