首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

当用户选择 UITextField 时,要显示 UIDatePicker 而不是键盘,可以通过以下步骤实现:

  1. 创建 UIDatePicker 并设置其属性。
代码语言:swift
复制
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
datePicker.addTarget(self, action: #selector(datePickerValueChanged), for: .valueChanged)
  1. 创建一个输入辅助视图,将 UIDatePicker 添加到输入辅助视图中。
代码语言:swift
复制
let inputAccessoryView = UIView()
inputAccessoryView.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: 200)
inputAccessoryView.addSubview(datePicker)
  1. 将输入辅助视图添加到 UITextField。
代码语言:swift
复制
textField.inputAccessoryView = inputAccessoryView
  1. 实现 UIDatePicker 的值改变时的方法,将选择的日期设置到 UITextField。
代码语言:swift
复制
@objc func datePickerValueChanged(sender: UIDatePicker) {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    textField.text = dateFormatter.string(from: sender.date)
}
  1. 在 UIViewController 中重写 inputAccessoryViewDidScroll 方法,隐藏键盘。
代码语言:swift
复制
override func inputAccessoryViewDidScroll() {
    textField.resignFirstResponder()
}

这样,当用户点击 UITextField 时,会显示 UIDatePicker,而不是键盘。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 实践-小细节 Ⅰ

    UIDatePicker 这个时间选择器的显示,会随着手机的语言设置不同,对于用模拟器的小伙伴,默认的显示样式是英文的,把模拟器的语言设置成简体中文就变成这样了 ?...这样iOS就能知道移除的是自己的kvo,不是父类中的kvo,避免二次remove造成crash。 6.阴影效果不出来?...UITextView 无法设置单行输入,输入的内容超过当前行的长度就会自动换行,使用回车键也可以达到换行的效果。内容大小超出了当前的Frame  就可以滚动。...UITextField  无法设置多行输入 8.日期格式的设置细节(不带0) d  将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。...M  将月份显示为不带前导零的数字(如一月表示为 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %M。 MM  将月份显示为带前导零的数字(例如 01/12/01)。

    1.6K20

    iOS-UITextField 全面解析iOS中UITextField 使用全面解析UITextField的代理方法通知UITextField 在storyboard 中设置属性

    //开始编辑触发,文本字段将成为first responder } - (BOOL)textFieldShouldReturn:(UITextField *)textField { // 点击键盘的返回键...值,指定是否允许文本字段结束编辑,编辑结束,文本字段会让出first responder   //要想在用户结束编辑阻止文本字段消失,可以返回NO   //这对一些文本字段必须始终保持活跃状态的程序很有用...2、Placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。这个文本框中输入了数据,用于提示的灰色的字将会自动消失。...接下来的部分用于设置键盘如何显示。 13、Captitalization : 设置大写。...19、Secure : 当你的文本框用作密码输入框,可以选择这个选项,此时,字符显示为星号。

    7.2K60

    iOS开发——定制UITextField

    在iOS中UITextField这个控件作为文本输入控件一定是使用率最高的几个控件之一,iOS提供的默认的原始TextField的造型肯定在开发很难满足我们的要求,原因很简单,不够美观,实在太单调。...所以今天我们从一些简单的复写UITextField方法开始,来讲一讲如何定制一个属于自己的UITextField。...今天我们主要从UITextField键盘收起、placeholder的设置以及自定义距离、字体,以及控制输入文本,距离UITextField边框的距离和UITextField中一些常用的方法和枚举变量等方面来阐述如何定制自己的...键盘的收起 首先我们先来看UITextField键盘弹出和回收,UITextField在默认的情况下,键盘在输入完成后是不会自动回收的,这里我们讲解如何在按下Return键键盘自动回收。...placeholder的设置 在一些特定功能的文本输入框,我们常常要设置placeholder属性来指明UITextField的功能,例如:请在此处输入密码。

    1.6K40

    1.注册或登录页面设计:UILabel,UIButton,UITextField

    说明: 这里为了展现UITextField的文本框关联键盘的设置,这里把“密码”和“确定密码”的关联键盘都设置为数字键盘,实际应用中密码一般都允许为数字或字母。 实现了键盘收回操作。...81 [confirmButton setTitle:@"确定" forState:UIControlStateHighlighted]; //高亮显示button的标题 82...label7.userInteractionEnabled = YES; //设置label中的文字是否可变,默认值是YES label3.enabled = NO; //设置文字过长显示格式 label3...alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //输入框没有内容,水印提示 ,提示内容为“用户名” //显示灰色字体,作为提示信息 text.placeholder...= @"用户名"; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum {

    2.4K50

    iOS UI控件了解一下

    一个view设置bounds,会把自己当成一个容器,定义自己的边界大小以及左上角的初始坐标。子视图添加到此视图,会根据bounds指定的原点(0,0)计算frame,而非左上角。...在App中UITextField出现频率也比较高; (2)iOS系统借助虚拟键盘实现输入,点击输入框,系统会自动调出键盘,方便 你进一步操作。...在你不需要输入的时候,可以使用收回键盘的方法,收回弹出的键盘; (3)UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑, UITextField允许用户编辑文字(输入...2)如何使用UITextField? 创建UITextField与创建UILabel的步骤很相似。...6)输入控制: UITextField类提供了许多控制输入的API,包括密码模式、键盘样式、自定义键盘等(详见下表) ?

    2.6K20

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    UITextField 属性 (1) PlaceHolder 属性 PlaceHolder 属性 : 属性值是一个字符串, 再文本框没有输入内容, 文本框内显示的灰色文本, 用于作为文本框提示信息...属性值设置为 "请输入用户名", Clear Button 属性选择 "Appear while editing", Return 列表选择 "Done" 属性, 勾选 "Auto-enable Return...设置下面的属性; -- Placeholder 属性 : 设置 "请输入密码" 提示字符串; -- Clear Button 属性 : 设置 "Appear while editing" 选项, 编辑出现取消按钮...; -- Keyboard 属性 : 选择 "Number Pad" 显示 数字虚拟键盘; -- Secure 属性 : 选中该复选框, 输入内容都是小圆点; (3) 示例 示例演示 :  -- Interface...自定义键盘附件 :  -- 作用 : 不是所有的应用都有导航栏, 在没有导航栏的应用中, 需要有键盘附件来关闭键盘; -- 1.

    6.8K20

    iOS UITextField详解

    } 重写绘制行为 除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。...*)textField{ //返回BOOL值,指定是否允许文本字段结束编辑,编辑结束,文本字段会让出first responder //要想在用户结束编辑阻止文本字段消失,可以返回NO...UITextFieldTextDidEndEditingNotification 文本字段退出编辑模式触发。...因为文本字段要使用键盘输入文字,所以下面这些事件发生,也会发送动作通知 UIKeyboardWillShowNotification //键盘显示之前发送 UIKeyboardDidShowNotification...//键盘显示之后发送 UIKeyboardWillHideNotification //键盘隐藏之前发送 UIKeyboardDidHideNotification //键盘隐藏之后发送

    1.8K30

    iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

    最近在项目中经常用到UITableView中的cell中带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑,这时候键盘弹出来会出现遮挡待输入的...UITableViewController或其子类   首先,有一个很简单的解决方案,就是将我们的控制器换成UITableViewController或其子类,UITableViewController中的cell键盘弹出的时候表单整体会自动进行上移...但是,如果我们的整体布局并不是只有一个UITableView,或者我们在项目中需要用到MBProgressHUD框架,我们可能就不能直接将我们的控制器设置成UITableViewController或其子类...此外,当用户点击【clear/清除】按键时调用 textFieldShouldClear: 方法清除内容,当用户点击【return/完成】按键时调用 textFieldShouldReturn: 方法,...tableview的contentOffset以及当前编辑cell的frame,然后在应用自定义cell设定我们的两个回调block,开始编辑,通过回调block回传的frame参数设置对应的editFrame

    3.9K80

    iOS学习——输入验证码界面封装

    验证码输入视图(KLCodeResignView)的最底层用一个透明的UITextField来接收键盘的输入信息,上面则用4个展示视图(KLCodeView)来分别展示输入的验证码信息,所有的展示视图(...  信息输入框UITextField是最重要的一部分,布局在KLCodeResignView的最底层,主要作用是用于接收验证码的输入,但是对应的光标肯定是不能显示出来的,而且该UITextField不能进行复制...、粘贴、选择等操作。...这个问题的解决也很简单,因为这个 UILabel的内容是通过一个属性text来进行设置的,所以我们重写text的设置方法就OK了,设置的text内容不为空,我们就设置对应的颜色为需要的颜色(蓝色),...我们用属性currIndex来表示当前待输入的展示视图KLCodeView的下标,所以,输入一个合法的验证码,currIndex要加1,删除一个验证码,currIndex要减1,并且currIndex

    1.9K30

    实践-小效果 II

    haven't received permission from the user to badge the 原因是因为在ios8中,设置应用的application badge value需要得到用户的许可...NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; //得到富文本后赋值给Label,再对Label设置字体颜色和字体大小,不用在富文本的得到过程中设置...通过 UITextFeild 绑定的方法,获取到UITextFeild的字符串,根据长度动态显示 数组中对应长度的Label,结果为6位数,回调当前UITextFeild的字符串。...(chengMe:) forControlEvents:UIControlEventEditingChanged]; - (void)chengMe:(UITextField *)textField...Localizations添加Chinese # 修改Target-->Info-->Localization native development region : China (这个貌似不需要) 8.设置UIDatePicker

    1.1K10

    【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

    日期选择器 (UIDatePicker) UIDatePicker 属性截图 :  1....UIDatePicker 控件属性 (1) Mode 属性  Mode 属性 : 用于设置 UIDatePicker 模式; -- Date 属性值 : 显示日期, 不显示时间; -- Time 属性值...属性值 : 国际化设置相关属性, 通常使用默认的设置即可; (3) Interval 属性  Interval 属性值 : 设置两个时间选项的时间间隔, 仅采用 Time, Date and Time...UIDatePicker 日期选择器 示例代码 代码示例 :  -- 界面设计文件 :  -- OCViewController.h :  // // OCViewController.h //...会等交互结束后才发送 value change 事件; -- Wrap : 默认 NO, YES 当值持续增加 比 Maximum 还大时会变成 Minimum, 值持续减小 比 Minimum

    4.5K40

    iOS键盘、选取器上的工具栏

    同样,在使用选取器的时候,最常见的就是选择省市区选择完毕后我们想要收起选取器,一种做法时点击空白界面来唤起一个响应,另一种更常见的做法还是自行添加一个工具栏上去,因为这时往往需要两个按钮,一个“取消...在键盘上添加收起按钮 先看看效果: 可以看到,在键盘上面有一条工具栏,最左边有一个小图标,是键盘形状的,点击那个图标后,就会收起键盘,这个按钮并不是自带的,是我添加上去的。...[textField isEqual:self.pickerText]) {// 避免与选取器的工具栏起冲突,只在键盘输入框添加 //在键盘上添加toolbar工具条 点击工具条中的按钮回收键盘...另一行是将省市区选取器作为inputView,这样点击输入就会直线显示选取器,不是键盘了。至于选取器怎么做,不是本文的重点,在文末之间下载示例工程看吧。...,还记得上面的delegate中设置了一下只有当不是选取器的textfield显示键盘的工具栏吗,如果不判断一下,两个工具栏会冲突,结果就是什么都不显示,创建工具栏的代码如下: // 工具栏按钮 -

    1.5K10

    【IOS开发基础系列】UIAlertController专题

    下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图。...是使用对话框(alert)还是使用上拉菜单(action sheet),就取决于在创建控制器,您是如何设置首选样式的。...您向对话框控制器中添加文本框,您需要指定一个用来配置文本框的代码块。         ...UIAlertController的登录和密码对话框示例         好了,现在对话框的“好的”按钮被冻结了,除非在“登录”文本框中输入3个以上的字符: 上拉菜单         需要给用户展示一系列选择的时候...3 开发技巧 3.1 常见问题 3.1.1 集成键盘监听后,重复进入页面挂机问题         在项目中,由于自定义AlertView中有用到textfield,故AlertView中添加了键盘显示隐藏的通知监听

    53530

    编码篇-iOS开发中的奇巧小伎

    光标 37、UITextView/UITextField中没有文字,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell在屏幕中的frame 40、UITextField...53.本来我的statusbar是lightcontent的,结果用UIImagePickerController会导致我的statusbar的样式变成黑色 54.把navigationbar弄成透明的不是带模糊的效果...自己键盘打出的 % 汉字形式下的还是会报警告,并且不会显示出来.把上文的粘贴过去使用吧!...光标 textField.tintColor = [UIColor clearColor]; 37、UITextView/UITextField中没有文字,禁用回车键 textField.enablesReturnKeyAutomatically...// 设置某个键盘颜色 textField.keyboardAppearance = UIKeyboardAppearanceAlert; // 设置工程中所有键盘颜色 [[UITextField

    5.4K10

    ios学习——键盘的收起

    具体解决方案有两种: 1、在当前页面设置点击事件,点击事件发生,注销当前视图的第一响应者或者设置当前摄入结束。...点击事件发生在非选中区域,则键盘会自动回收: 1 //在viewDidLoad中 添加点击手势,为了关闭键盘的操作 2 UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer...2、利用键盘上的 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView的应用不一样,需要区别进行。   ...但是,我们可以根据UITextViewDelegate提供的方法对键盘输入的值进行判断,如果为回车键(\n)则设置当前UITextView不是第一响应者,否则不操作。...UITextView的一个类 2 self.delegate = self ; 3 self.returnKeyType = UIReturnKeyDone ; //UITextViewDelegate代理,键盘输入变化时调用

    1.9K60

    SwiftUI TextField进阶——格式与校验

    如何在TextField中实现格式化显示 现有格式化方法 在SwiftUI 3.0中,TextField新增了使用新老两种Formatter的构造方法。...如何在TextField中屏蔽无效字符 现有屏蔽字符方法 在SwiftUI中,可以通过设置仅使用特定的键盘类型来实现一定程度上的录入限制。...•只支持部分类型的设备•支持的键盘类型有限 例如在iPad下keyboardType是无效的,在苹果鼓励应用程序对多设备类型支持的今天,让用户在不同的设备上享受到相同的体验至关重要。...由于TextField的Formatter构造方法采用了特别的包装方式,我们无法获得绑定值不是String(例如整数、浮点数、日期等)的录入框内容的。...不利于判断用户是否录入新的信息(更多的信息可参阅如何在SwiftUI中创建一个实时响应的Form[10])。方案二中允许不提供初始值,支持可选值。

    8.2K20
    领券