鸿蒙Harmony应用开发—ArkTS声明式开发(组件快捷键事件)

开发者可以设置组件的自定义组合键,组合键的行为与click行为一致,组件在未获得焦点状态下也可以响应自定义组合键,每个组件可以设置多个组合键。

说明:

从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

keyboardShortcut

keyboardShortcut(value: string | FunctionKey, keys: Array<ModifierKey>, action?: () => void)

设置组件的自定义组合键。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
valuestring | FunctionKey热键的单个字符(可以通过键盘输入的字符)或FunctionKey。
keysArray<ModifierKey>热键组合。
action() => void组合快捷键触发成功后的自定义事件回调。

ModifierKey

名称描述
CTRL表示键盘上Ctrl键。
SHIFT表示键盘上Shift键。
ALT表示键盘上Alt键。

FunctionKey

名称描述
ESC表示键盘上ESC功能键。
F1表示键盘上F1功能键。
F2表示键盘上F2功能键。
F3表示键盘上F3功能键。
F4表示键盘上F4功能键。
F5表示键盘上F5功能键。
F6表示键盘上F6功能键。
F7表示键盘上F7功能键。
F8表示键盘上F8功能键。
F9表示键盘上F9功能键。
F10表示键盘上F10功能键。
F11表示键盘上F11功能键。
F12表示键盘上F12功能键。

快捷键使用注意事项

场景快捷键处理逻辑例子
所有支持onClick事件的组件支持自定义组合键
自定义组合键要求控制键Ctrl、Shift、Alt及它们的组合加上其它可输入字符按键Button('button1').keyboardShortcut('a',[ModifierKey.CTRL])
多个不同组件设置相同组合键只响应结点树上的第一个组件,其它组件不响应快捷键。Button('button1').keyboardShortcut('a',[ModifierKey.CTRL])
Button('button2').keyboardShortcut('a',[ModifierKey.CTRL])
无论组件是否获得焦点只要窗口获焦快捷键就会响应
绑定单个快捷键时候,通过keyboardShortcut接口value值或者是keys值或两者都是空的情况下。
绑定多个快捷键的时候无法取消快捷键。
取消快捷键的设置Button('button1').keyboardShortcut('',[ModifierKey.CTRL])
Button('button2').keyboardShortcut('a',[l])
Button('button3').keyboardShortcut('',[])
独立pipeline子窗口、主窗口共存的情况下获焦的窗口响应快捷键
keyboardShortcut接口中的keys命令中ctrl、shift、alt不区分左右键都响应Button('button1').keyboardShortcut('a',[ModifierKey.CTRL, ModifierKey.ALT])
keyboardShortcut接口中的value单个字符不区分大小写都响应Button('button1').keyboardShortcut('a',[ModifierKey.CTRL])
Button('button2').keyboardShortcut('A',[ModifierKey.CTRL])
快捷键的响应所有快捷键down的状态下响应、且连续响应
隐藏组件响应快捷键
disable状态组件不响应快捷键
1. 组件的组合键(包括系统预定义快捷键)相同时。
2. 接口参数value有多个字符时。
3. 接口参数keys有重复的控制键时。
这几种情况不绑定组合键, 先前绑定的组合键仍然有效Button('button1').keyboardShortcut('c',[ModifierKey.CTRL])
Button('button2').keyboardShortcut('ab',[ModifierKey.CTRL])
Button('button3').keyboardShortcut('ab',[ModifierKey.CTRL,ModifierKey.CTRL])

系统已有组合键

快捷键组件
Ctrl + CImage、TextInput、TextArea
Ctrl+ AImage、TextInput、TextArea
Ctrl+ VImage、TextInput、TextArea
Ctrl+ XImage、TextInput、TextArea
Shift + 方向键Image、TextInput、TextArea
Ctrl+ Shift+ ZImage、TextInput、TextArea
Ctrl+ ZImage、TextInput、TextArea
Ctrl+ YImage、TextInput、TextArea
方向键、回车键Image、TextInput、TextArea
TAB键Image、TextInput、TextArea

示例

设置组件的快捷键,同时按控制键+对应的字符可以触发组件响应快捷键,并触发onClick事件或自定义事件。

// xxx.ets
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  build() {
    Row() {
      Column() {
        Text(this.message)
        Button("Test short cut 1").onClick((event) => {
          this.message = "I clicked Button 1";
          console.log("I clicked 1");
        }).keyboardShortcut('.', [ModifierKey.SHIFT, ModifierKey.CTRL, ModifierKey.ALT])
          .onKeyEvent((event)=>{
            console.log("event.keyCode: " + JSON.stringify(event));
          })
        Button("Test short cut 2").onClick((event) => {
          this.message = "I clicked Button 2";
          console.log("I clicked 2");
        }).keyboardShortcut('1', [ModifierKey.CTRL])
        Button("Test short cut 3").onClick((event) => {
          this.message = "I clicked Button 3";
          console.log("I clicked 3");
        }).keyboardShortcut('A', [ModifierKey.SHIFT])
        Button("Test short cut 4").onClick((event) => {
          this.message = "I clicked Button 4";
          console.log("I clicked 4");
        }).keyboardShortcut(FunctionKey.F5, [], () => {
          this.message = "I clicked Button 4";
          console.log("I clicked user callback.");
        }).keyboardShortcut(FunctionKey.F3, [])
      }
      .width('100%')
    }
    .height('100%')
  }
}

最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(Harmony NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(Harmony NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/419537.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Facebook的元宇宙实践:数字化社交的新前景

近年来&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念备受瞩目&#xff0c;被认为是数字化社交的未来趋势之一。而在众多科技巨头中&#xff0c;Facebook&#xff08;现更名为Meta&#xff09;一直处于元宇宙发展的前沿。在本文中&#xff0c;我们将深入探讨Fac…

SpringCloud搭建微服务之Consul服务注册与发现

1. Consul介绍 Consul是由HashiCorp公司使用Go语言开发的一款开源工具&#xff0c;主要用于实现分布式系统的服务发现和服务配置&#xff0c;其内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key-Value存储、多数据中心方案。Consul具有高可移植性&#xff0c;支…

螺旋模型——软件开发过程中的灵活迭代之道

螺旋模型——软件开发过程中的灵活迭代之道 引言&#xff1a; 在软件开发领域&#xff0c;项目管理对于确保项目的成功至关重要。随着软件行业的快速发展&#xff0c;传统的瀑布模型逐渐暴露出其局限性。为了满足不断变化的需求&#xff0c;并提高软件开发的灵活性和适应性&am…

(案例贴2) html+css 倒计时器

欢迎大家使用这个计时器噢 老哥直接附代码咯. timer.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…

群控代理IP搭建教程:打造一流的网络爬虫

目录 前言 一、什么是群控代理IP&#xff1f; 二、搭建群控代理IP的步骤 1. 获取代理IP资源 2. 配置代理IP池 3. 选择代理IP策略 4. 编写代理IP设置代码 5. 异常处理 三、总结 前言 群控代理IP是一种常用于网络爬虫的技术&#xff0c;通过使用多个代理IP实现并发请求…

快速下载Huggingface的大语言模型

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Huggingface是什么&#xff1f;二、基于官方huggingface-cli下载&#xff08;基础&#xff0c;断线风险&#xff09;1.安装hf下载环境2.配置环境变量3.注册…

【Ai生态开发】Spring AI上架,打造专属业务大模型,AI开发再也不是难事!

大家好 这里是苏泽 后端是工作 ai是兴趣 对于ai的产生我的立场是拥抱ai的 是希望拿他作为提升能力的工具 那么这一篇带大家来学习如何使用ai打造一个专属的业务大模型 需求 就是说假设现在有一个 商城系统 里面有查询订单的api和获取商品购买方式的api 用户只需要输入 “…

2024年2月24日~2024年3月1日周报(调整网络结构)

文章目录 一、前言二、实验情况2.1 结果展示2.2 灵感收集 三、小结 一、前言 上周学习了数学表达式、了解了DDNet的网络框架。   在本周&#xff0c;寻找改进网络框架与超参数的灵感&#xff0c;并跑代码查看效果。另外&#xff0c;完成了毕业设计开题报告任务。 二、实验情…

【javaEE-唠嗑局】如何用jconsole观察进程里的多线程情况

&#x1f4e2;编程环境&#xff1a;idea 如何用jconsole观察进程里的多线程情况 1. 打开jdk2. 打开jconsole3. 查看每个线程的情况 以下面这段代码为例&#xff1a;代码运行时&#xff0c;包括一个进程&#xff0c;该进程中有两个线程。 package thread; public class Demo1 …

无法调试MFC源码

VS无法调试MFC源码 起初 有时候就是这么无奈&#xff0c;MFC源码各种问题没有办法调试&#xff0c;可是又想看下代码如何调用&#xff0c;里面做了些什么&#xff0c;从哪儿调出&#xff0c;学习一下大神的思路什么的。整理一下有可能的原因。 检查生成代码设置 需要设置正…

十二、Nacos源码系列:Nacos配置中心原理(四)- RefreshEvent 事件处理

前面文章&#xff0c;我们说到回调监听器的方法中&#xff0c;主要就是发布了一个RefreshEvent事件&#xff0c;这个事件主要由 SpringCloud 相关类来处理。今天我们继续分析后续的流程。 RefreshEvent 事件会由 RefreshEventListener 来处理&#xff0c;该 listener 含有一个 …

【YOLO系列】YOLOv9论文超详细解读(翻译 +学习笔记)

前言 时隔一年&#xff0c;YOLOv8还没捂热&#xff0c;YOLO系列最新版本——YOLOv9 终于闪亮登场&#xff01; YOLOv9的一作和v7一样。v4也有他。 他于2017年获得台湾省National Central University计算机科学与信息工程博士学位&#xff0c;现在就职于该省Academia Sinica的…

计算机二级MySQL-错题、知识点合集04

计算机二级MySQL 第四章 索引 主键约束&#xff0c;不允许为空也不允许重复。 NOT NULL非空约束属于自定义完整约束 PRIMARY KEY 属于实体完整性约束 FOREIGN KEY外键约束 外键与其引用的主键应分别属于不同的表&#xff0c;可以属于同一个关系&#xff1b;一个关系中可以定…

【java 基础】闲话 ClassLoader 和 SPI (一)

文章目录 引子双亲委派模型你真的明白了吗&#xff1f; 双亲委派“不够用了”SPI机制 其他琐碎 引子 有别于 java 提供的 IO 模块&#xff0c;java 中的classloader主要是用来加载类的&#xff0c;当然除了加载类&#xff0c;也可以加载资源文件。 那么首先我们会问一个问题&…

光伏业务管理软件有哪些推荐?

光伏业务管理软件是用于光伏电站的设计、施工、运营和维护等各个环节的软件工具。以下是一些推荐的光伏业务管理软件&#xff1a; PVsyst 这是一款全球广泛使用的光伏系统设计软件&#xff0c;可以进行详细的系统设计&#xff0c;包括组件匹配、逆变器选择、系统布局等。 鹧…

电子信息行业数字化转型创新应用挑战赛火热进行中,速戳

由深圳市宝安区人民政府、中国信息通信研究院联合举办的“第七届工业互联网数据创新应用大赛——解决方案赛道&#xff1a;电子信息行业数字化转型创新应用挑战赛”火热进行中&#xff01;大赛报名时间截至2024年3月15日&#xff0c;并将于3月25日在深圳宝安进行线下决赛答辩。…

如何辨别GPT3还是GPT4?

辨别后台使用的是GPT3还是GPT4可以提问以下问题验证&#xff1a; 1.昨天的当天的明天是哪天&#xff1f; 2.树上有9只鸟&#xff0c;猎人射杀了一只&#xff0c;还剩下多少只&#xff1f; 3.为什么周树人要打鲁迅&#xff1f; GPT3回答&#xff1a; GPT4回答&#xff1a; 如…

全闪存加速信创数据库数仓一体机解决方案

立足行业&#xff0c;深度解读 在新的大数据生态中&#xff0c;传统数据库/数据仓库技术和产品成为大数据生态中的组成部分&#xff0c;对结构化数据的存储和计算进行支撑。 数据库&数据仓库一体机是高端、核心数据管理产品&#xff0c;在我国党政、银行、交通等领域广泛…

市场热点袭来,直接加仓可靠吗?九方智投洪帮主助投资者明确几大要点

消费电子近期再度走强&#xff0c;多企业均出现涨停。消费电子出现乐观局面&#xff0c;有投资者认为是因为目前市场需求旺盛&#xff0c;产业链正在积极拉货&#xff0c;持续加单&#xff0c;各类手机新机也在积极备货&#xff0c;消费电子库存低。面对市场情绪高涨&#xff0…

LabVIEW最佳传输系统设计

LabVIEW最佳传输系统设计 介绍了基于LabVIEW软件开发的最佳基带传输系统和最佳带通传输系统的设计。通过软件仿真实现了脉冲成形滤波器和匹配滤波器的设计&#xff0c;证明了系统在消除码间干扰和抗噪声方面的优异性能。此设计不仅激发了学生的学习兴趣&#xff0c;还有助于提…