就像QQ的聊天输入框一样,我先输入十个字,然后把光标移动到第三个字后面,这时候我想记录一下光标的位置,然后在当前位置插入一个emoji表情,
请问有这种事件吗?
今天我尝试了focue和input事件,貌似都不太行!
一个主要的现象就是,文字输入完成,移动光标到某个字后面,emoji表情就会插入到文字的最后,这时候我再移动光标,再插入emoji,貌似位置以正确了
主要的代码:
<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();
}
1 个回复
DCloud_UNI_yuhe
我这里试了一下,直接插入就可以,您检查下代码或者给我们提供更多细节