序
粘贴通讯录电话号码至textfield中时发现,剪切板中的电话号码字符串为@"\U0000202d<电话号码>\U0000202c"这种格式,也就是说前后各多一个Unicode字符,这两个字符属于[General Punctuation],范围U+2000..U+206F,共111个,有些是格式化字符或空白字符,@"\U0000202d"为Left-To-Right Override,@"\U0000202c"为Pop Directional Formatting,属于格式化字符不显示,所以如果需要计算粘贴的字符串长度,需要特别注意,比显示的字符串多了两个字符的长度。
源码
[https://github.com/liulishuo/Unicode-General-Punctuation-]
实现
- UITextField分类,复写paste方法,将粘贴板里字符串多余的前后缀去掉。手动触发UIControlEventEditingChanged事件,或者任何你监听的事件。
- 打印General Punctuation集合的所有111个字符的说明,并展示效果。
- 可输入2000至206F之间的16进制数字,查询对应的Unicode字符。
[图片上传失败...(image-ff849e-1510977757685)]
网友评论