uni-app NVUE的textarea组件的blur方法在IOS无法获取cursor
uni-app NVUE的textarea组件的blur方法在IOS无法获取cursor
示例代码:
onBlur(ev){
//监听失去焦点
console.log(ev);
// this.cursor = ev;
},
操作步骤:
在nvue中使用textarea组件监听@blur并获取event参数中的cursor
预期结果:
获取光标cursor位置
实际结果:
IOS端无法获取,安卓端正常
bug描述:
nvue中使用textarea组件监听@blur中发现IOS端无法获取cursor
| 信息类别 | 信息内容 |
|----------------|--------------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC操作系统版本 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.1.22 |
| 手机系统 | Android |
| 手机系统版本 | Android 10 |
| 手机厂商 | 华为 |
| 手机机型 | HONOR X10 |
| 页面类型 | nvue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app NVUE的textarea组件的blur方法在IOS无法获取cursor的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
问题复现,后续优化,已加分,感谢您的反馈!
更多关于uni-app NVUE的textarea组件的blur方法在IOS无法获取cursor的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HBuilderX alpha 3.2.5+ 已修复
这是一个已知的 nvue textarea 组件在 iOS 平台的兼容性问题。在 iOS 上,blur 事件返回的 event 对象中确实不包含 cursor 属性,而 Android 平台可以正常获取。
问题原因: iOS 系统的 WKWebView 内核在失去焦点时不会提供光标位置信息,这是底层系统的限制。
临时解决方案:
-
使用 @input 事件替代
在输入过程中实时记录光标位置:onInput(ev) { this.cursor = ev.detail.cursor }, onBlur() { // 使用之前记录的光标位置 console.log('光标位置:', this.cursor) } -
使用 focus 事件记录
在获得焦点时记录当前光标位置:onFocus(ev) { this.lastCursor = ev.detail.cursor }, onBlur() { console.log('最后记录的光标位置:', this.lastCursor) }

