getFocusedButtons 获取聚焦的按钮列表
getFocusedButtons
类型: MethodDeclaration
定义位置: ui.ts
描述
获取聚焦的按钮列表
参数 focus
: 焦点元素
参数 allowActive
: 按钮正在被按下时,返回空列表
返回值:焦点元素相关的按钮列表
参数
参数名 | 类型 | 描述 | 默认值 |
---|---|---|---|
focus | UIElement | null | - | null |
allowActive | boolean | - | false |
返回值
类型: Array<ButtonElement>
焦点元素相关的按钮列表
源代码
位置: 第 473 行
public getFocusedButtons(focus: UIElement | null = null, allowActive: boolean = false): Array<ButtonElement> {
if (!focus) {
const focuses = this.focuses
const length = focuses.length
if (length === 0) {
return Array.empty
}
focus = focuses[length - 1]
}
let invalid = false
const fetch = (elements: Array<UIElement>, mode: FocusMode) => {
for (const element of elements) {
if (element instanceof ButtonElement) {
// 如果按钮正在被按下,返回空列表
if (allowActive === false &&
element.state === 'active') {
invalid = true
return
}
buttons.push(element)
}
if (mode === 'control-descendant-buttons') {
fetch(element.children, mode)
}
}
}
const buttons: Array<ButtonElement> = []
fetch(focus.children, focus.focusMode!)
return invalid ? Array.empty : buttons
}
文档生成时间:2025/7/7 12:07:07