Mac中文输入法区分回车和提交

一、功能描述:

在搜索框中输入关键词,回车跳转至搜索结果页

二、项目背景记录:

vue3+vuetify的项目

三、问题描述:

中文输入法。

在Windows下输入拼音后,敲击空格 => 显示第一个联想词,敲击回车 => 拼音显示在搜索框中,再敲击回车 => 跳转搜索结果页。

在Mac浏览器中,敲击空格 => 显示第一个联想词,敲击回车 => 跳转到搜索结果页

很明显,Mac中不符合我们平时的输入习惯。

四、问题代码:

html 复制代码
<VTextField
  ref="refSearchInput"
  v-model="searchQuery"
  autofocus
  variant="plain"
  class="app-bar-autocomplete-box"
  @keyup.esc="clearSearchAndCloseDialog"
  @keyup.enter.native="search(true)"
  @keydown="getFocusOnSearchList"
>
  ......
</VTextField>

五、解决思路:

  1. 最开始想到的就是阻止默认事件,但是逻辑上行不通,而且实际操作后发现确实行不通

  2. 网上简单查了下,event有个属性可以使用------isComposing,而且这个属性只有在keydown事件中会有所区别。

六、修改后的代码:

html 复制代码
<!-- template -->
<VTextField
  ref="refSearchInput"
  v-model="searchQuery"
  autofocus
  variant="plain"
  class="app-bar-autocomplete-box"
  @keyup.esc="clearSearchAndCloseDialog"
  @keydown="getFocusOnSearchList($event,true)"
>
  ......
</VTextField>
javascript 复制代码
// script
const getFocusOnSearchList = (e, hideHistory) => {
  ......
  // 判断是否是enter,以及处理mac中,中文输入法回车问题
  if(e.key === 'Enter' && !e.isComposing) {
    search(e, hideHistory)
  }
}

成功!

相关推荐
最后一支迷迭香6 分钟前
Mac使用docker下的两个冷知识
macos·docker·容器
你疯了抱抱我1 小时前
【Mac】安装并配置HomeBrew;ARM GCC;make;OpenOCD
arm开发·macos
春波petal1 小时前
Mac把底部Dock固定在笔记本主屏(自带屏幕),4步搞定
macos
键盘飞行员2 小时前
macOS Trae 解决 Codex 插件不显示问题(官方适配版)
macos·编辑器·ai编程
一个人旅程~2 小时前
win11中启用经典win10右键菜单和还原默认win11右键菜单如何操作
windows·经验分享·macos·电脑
花伤情犹在10 小时前
Mac上 10 分钟快速安装Hermes
macos·ai·agent·hermes
大码青年17 小时前
Pentaho Data Integration 完整安装指南 MacOS M5 - 最新版下载地址 pdi-ce-11
macos
专注VB编程开发20年19 小时前
swift,object-c同名函数重载
macos·objective-c·cocoa
一个人旅程~1 天前
如何让bootcamp-win10中的触摸板像macbook中一样丝滑原生效果?
windows·经验分享·macos·电脑
欧阳天羲1 天前
AI智能水枪完整开发攻略
人工智能·macos·xcode