iOS - 新特性:从键盘上获取手机号和验证码

本文详细介绍如何在iOS应用中优化键盘体验,包括设置不同类型的输入框内容类型,如电话号码、验证码等,以及如何强制使用系统键盘,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 前提:必须使用系统自带键盘
  • 前提:必须使用系统自带键盘
  • 前提:必须使用系统自带键盘

番外:强制使用系统键盘类型方法

在 AppDelegate 里面 UIApplicationDelegate 代理方法中设置

func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
    if extensionPointIdentifier.rawValue == "com.apple.keyboard-service" {
        return false
    }
    return true
}

iOS 10.0+ 新特性,系统键盘读取当前手机 SIM 卡号

图例:

在这里插入图片描述

  • 点击键盘上方的手机号码,即可自动填充到输入框 (如果输入框对数据进行的限制,需要额外处理)

实现方法讲解:

设置键盘类型为 UIKeyboardType.numbersAndPunctuation
设置输入框的内容类型为 UITextContentType.telephoneNumber

具体代码:

if #available(iOS 10.0, *) {
    phoneNumberField.keyboardType = .numbersAndPunctuation
    phoneNumberField.textContentType = .telephoneNumber
} else {
    phoneNumberField.keyboardType = .numberPad
}


键盘弹出的类型

图例:

在这里插入图片描述

  • 点击键盘上方的验证码,即可自动填充到输入框
实现方法讲解:

设置输入框的内容类型为 UITextContentType.oneTimeCode

具体代码:

if #available(iOS 12.0, *) {
    codeField.textContentType = .oneTimeCode
}

键盘弹出的类型

详情内容请查看之前的介绍

iOS-键盘弹出的类型


输入框内容类型列举如下

extension UITextContentType {
    /*
    ......
    */
    /// 电话号码
    @available(iOS 10.0, *)
    public static let telephoneNumber: UITextContentType    
    /// 邮箱地址
    @available(iOS 10.0, *)
    public static let emailAddress: UITextContentType
    /// 网址
    @available(iOS 10.0, *)
    public static let URL: UITextContentType
    /// 信用卡号
    @available(iOS 10.0, *)
    public static let creditCardNumber: UITextContentType
    /// 用户名
    @available(iOS 11.0, *)
    public static let username: UITextContentType
    /// 密码
    @available(iOS 11.0, *)
    public static let password: UITextContentType
    /// 新密码
    @available(iOS 12.0, *)
    public static let newPassword: UITextContentType
    /// 验证码
    @available(iOS 12.0, *)
    public static let oneTimeCode: UITextContentType
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值