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)
  }
}

成功!

相关推荐
猫头虎5 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
皮卡车厘子1 天前
Mac 挂载目录
macos
良逍Ai出海1 天前
在 Windows & macOS 上安装 Claude Code,并使用第三方 Key 的完整教程
windows·macos
热爱生活的五柒1 天前
linux/mac/wsl如何使用claude code,并配置免费的硅基流动API?(官方的需要付费订阅)
linux·运维·macos
胖胖大王叫我来巡山2 天前
mac本地安装DataEase桌面版
macos
奋斗者1号2 天前
OpenClaw 部署方式对比:云端、WSL、Mac 本机、Ubuntu 虚拟机(2026年2月最新主流实践)
linux·ubuntu·macos
玉梅小洋2 天前
Android SDK 安装指南(MacOS 和 Windows)
android·windows·macos·sdk
2501_916007472 天前
没有 Mac 用户如何上架 App Store,IPA生成、证书与描述文件管理、跨平台上传
android·macos·ios·小程序·uni-app·iphone·webview
胖胖大王叫我来巡山2 天前
Mac通过源码安装部署SQLBOT
macos
June bug2 天前
【领域知识】广告全链路测试
macos·objective-c·cocoa