小天管理 发表于 2024年6月29日 发表于 2024年6月29日 就像 QQ 的聊天输入框一样,我先输入十个字,然后把光标移动到第三个字后面,这时候我想记录一下光标的位置,然后在当前位置插入一个 emoji 表情, 请问有这种事件吗? 今天我尝试了 focue 和 input 事件,貌似都不太行! 主要的代码: <uni-easyinput v-if="sendMsgWay === 0" class="builder-main__content" confirmType="send" ref="easyInput" :placeholder="placeholder" :clearable="false" v-model="message" @input="onInput" @focus="onInputFocus" @blur="onInputBlur" @confirm="onSendMessage" /> const cursorPosition = ref({}) //记录光标位置 const updateCursorPosition = ()=>{ uni.getSelectedTextRange({ success: res => { cursorPosition.value = {...res} } }) } function onInputFocus(e) { updateCursorPosition(); } function onInputBlur(){ updateCursorPosition(); } function onInput(){ updateCursorPosition(); } 一个主要的现象就是,文字输入完成,移动光标到某个字后面,emoji 表情就会插入到文字的最后,这时候我再移动光标,再插入 emoji,貌似位置以正确了
已推荐帖子