diff --git a/src/components/ha-generic-picker.ts b/src/components/ha-generic-picker.ts index 3e5cb689b8..9dd510733b 100644 --- a/src/components/ha-generic-picker.ts +++ b/src/components/ha-generic-picker.ts @@ -9,6 +9,7 @@ import { tinykeys } from "tinykeys"; import { fireEvent } from "../common/dom/fire_event"; import type { FuseWeightedKey } from "../resources/fuseMultiTerm"; import type { HomeAssistant } from "../types"; +import { isIosApp } from "../util/is_ios"; import "./ha-bottom-sheet"; import "./ha-button"; import "./ha-combo-box-item"; @@ -236,6 +237,7 @@ export class HaGenericPicker extends LitElement { } return html` { this._opened = true; requestAnimationFrame(() => { + if (this.hass && isIosApp(this.hass)) { + this.hass.auth.external!.fireMessage({ + type: "focus_element", + payload: { + element_id: "combo-box", + }, + }); + return; + } this._comboBox?.focus(); }); }; diff --git a/src/external_app/external_messaging.ts b/src/external_app/external_messaging.ts index 8a91faeb1c..b752335ec7 100644 --- a/src/external_app/external_messaging.ts +++ b/src/external_app/external_messaging.ts @@ -176,6 +176,13 @@ interface EMOutgoingMessageAddEntityTo extends EMMessage { }; } +interface EMOutgoingMessageFocusElement extends EMMessage { + type: "focus_element"; + payload: { + element_id: string; + }; +} + type EMOutgoingMessageWithoutAnswer = | EMMessageResultError | EMMessageResultSuccess @@ -197,7 +204,8 @@ type EMOutgoingMessageWithoutAnswer = | EMOutgoingMessageThreadStoreInPlatformKeychain | EMOutgoingMessageImprovScan | EMOutgoingMessageImprovConfigureDevice - | EMOutgoingMessageAddEntityTo; + | EMOutgoingMessageAddEntityTo + | EMOutgoingMessageFocusElement; export interface EMIncomingMessageRestart { id: number;