按鍵事件

2024-01-22 11:18 更新

按鍵事件指組件與鍵盤、遙控器等按鍵設(shè)備交互時(shí)觸發(fā)的事件,適用于所有可獲焦組件,例如Button。對(duì)于Text,Image等默認(rèn)不可獲焦的組件,可以設(shè)置focusable屬性為true后使用按鍵事件。

說明

從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。

事件

名稱

支持冒泡

功能描述

onKeyEvent(event: (event?: KeyEvent) => void)

綁定該方法的組件獲焦后,按鍵動(dòng)作觸發(fā)該回調(diào),event返回值見KeyEvent介紹。

KeyEvent對(duì)象說明

名稱

類型

描述

type

KeyType

按鍵的類型。

keyCode

number

按鍵的鍵碼。

keyText

string

按鍵的鍵值。

keySource

KeySource

觸發(fā)當(dāng)前按鍵的輸入設(shè)備類型。

deviceId

number

觸發(fā)當(dāng)前按鍵的輸入設(shè)備ID。

metaKey

number

按鍵發(fā)生時(shí)元鍵(即Windows鍵盤的WIN鍵、Mac鍵盤的Command鍵)的狀態(tài),1表示按壓態(tài),0表示未按壓態(tài)。

timestamp

number

事件時(shí)間戳。觸發(fā)事件時(shí)距離系統(tǒng)啟動(dòng)的時(shí)間間隔,單位納秒。

stopPropagation

() => void

阻塞事件冒泡傳遞。

示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct KeyEventExample {
  5. @State text: string = ''
  6. @State eventType: string = ''
  7. build() {
  8. Column() {
  9. Button('KeyEvent')
  10. .onKeyEvent((event: KeyEvent) => {
  11. if (event.type === KeyType.Down) {
  12. this.eventType = 'Down'
  13. }
  14. if (event.type === KeyType.Up) {
  15. this.eventType = 'Up'
  16. }
  17. this.text = 'KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText
  18. })
  19. Text(this.text).padding(15)
  20. }.height(300).width('100%').padding(35)
  21. }
  22. }

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)