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

成功!

相关推荐
AirDroid_cn2 天前
iOS 18 后台应用偷跑流量,如何限制?
macos·ios·cocoa
u***42072 天前
macOs安装docker且在docker上部署nginx+php
nginx·macos·docker
心灵宝贝3 天前
Mac Unity 2018.dmg游戏工具 安装步骤 简单易懂教程(附安装包)
macos·unity·游戏引擎
学习非暴力沟通的程序员3 天前
Mac 自动定时打开指定URL(无日历版)操作文档
macos
mixboot4 天前
macOS Homebrew 安装 Nmap
macos·nmap
Dream-Y.ocean4 天前
告别设备束缚!网易 UU 远程 Mac 被控体验:免费高清 + 多场景丝滑,跨端办公刚需神器
macos
❀͜͡傀儡师5 天前
docker安装mac系统
macos·docker·容器
库奇噜啦呼5 天前
【iOS】多线程学习
macos·ios·cocoa
守城小轩5 天前
Chromium 140 编译指南 macOS 篇:基础环境准备(一)
chrome·macos·chrome devtools·指纹浏览器·浏览器开发·超级浏览器
许泽宇的技术分享5 天前
用 OpenAI Whisper + pyannote.audio 打造“谁在说什么”的全栈语音理解系统
macos·whisper·xcode