iOS11 键盘中的字符 ASCII 问题
Character ASCII issue in iOS11 keyboard
我有一个应用程序,其中我只允许输入 ascii 值小于 127 的字符,因此当我在文本字段中输入这个 ' 字符时,在方法 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
中我得到的 ascii 为 39,但后来当我收集字符串时,就在将数据发送到服务器之前,我逐个字符检查输入字符串的 ASCII,我得到 ' 字符的 ascii 为 8216。这只发生在 iOS 11 中,而不是在iOS
的先前版本
我查看了 iOS11 的发行说明,它的键盘部分没有指定任何与此相关的内容。这是一个已知问题吗?在这种情况下我该怎么办,如何在文本字段中输入文本时进行验证?
智能引号和智能破折号等其他功能通过 UITextInputTraits 协议控制,UITextField
和 UITextView
均采用该协议。
具体来说,smartQuotesType
属性 可以设置为 .default
、.yes
或 .no
之一 您应该将此值设置为 .no
我有一个应用程序,其中我只允许输入 ascii 值小于 127 的字符,因此当我在文本字段中输入这个 ' 字符时,在方法 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
中我得到的 ascii 为 39,但后来当我收集字符串时,就在将数据发送到服务器之前,我逐个字符检查输入字符串的 ASCII,我得到 ' 字符的 ascii 为 8216。这只发生在 iOS 11 中,而不是在iOS
我查看了 iOS11 的发行说明,它的键盘部分没有指定任何与此相关的内容。这是一个已知问题吗?在这种情况下我该怎么办,如何在文本字段中输入文本时进行验证?
智能引号和智能破折号等其他功能通过 UITextInputTraits 协议控制,UITextField
和 UITextView
均采用该协议。
具体来说,smartQuotesType
属性 可以设置为 .default
、.yes
或 .no
之一 您应该将此值设置为 .no