Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案
http://qmuiteam.com/ios
Other
7.07k stars 1.37k forks source link

QMUITextField 在粘贴文字超过 maximumTextLength 限制时,光标没有正确处于文字末尾,而是在开头 #1282

Closed MoLice closed 2 years ago

MoLice commented 3 years ago

Bug 表现

https://user-images.githubusercontent.com/1190261/128720976-33079cee-5f9d-4854-80ac-a611c18a1e6b.mp4

如何重现

  1. QMUITextField 设置 maximumTextLength
  2. 粘贴一段比 maximumTextLength 更长的文本,可看到光标在文本开头,而不是文本末尾

预期的表现

  1. 如果 QMUITextField 原本内容为空,则粘贴后,光标应置于文本最末尾
  2. 如果 QMUITextField 原本有文本,此时光标在中间,粘贴后,光标应处于粘贴出来的那段文本的末尾(粘贴进来的文本会被裁剪,然后光标依然在整个输入框中间)
  3. 如果 QMUITextField 已经有某些文本被选中了,此时粘贴,光标也应该在替换后的文本的末尾。
  4. 如果 QMUITextField 在聚焦升起键盘时,通过代码调用 setText: 触发了最长文本的截断,光标也应该在该文本的末尾。

其他信息

MoLice commented 2 years ago

已发布 4.3.0 修复该问题。