我想知道如何将浏览器的焦点设置到 Figma 插件打开的插件窗口中。我在这个插件中运行 React。
到目前为止尝试了不同的方法,但有谁知道如何以正确的方式做到这一点?
对于上下文:我想对键盘输入做出反应,并且不希望用户首先必须单击插件窗口才能使键盘输入起作用。没有涉及输入元素,因为我想获取快捷键的键盘事件。
提前致谢!!
我想知道如何将浏览器的焦点设置到 Figma 插件打开的插件窗口中。我在这个插件中运行 React。
到目前为止尝试了不同的方法,但有谁知道如何以正确的方式做到这一点?
对于上下文:我想对键盘输入做出反应,并且不希望用户首先必须单击插件窗口才能使键盘输入起作用。没有涉及输入元素,因为我想获取快捷键的键盘事件。
提前致谢!!
我不得不解决一个类似的问题,并注意到“Iconify”插件确实做到了这一点。
如果你在 React 中,你可能可以用 auseRef
和 a来完成useEffect(() => inputRef.focus())
。
你可以在这里看到它在 Svelte 中的完成方式。但类似的规则适用于 React 或其他 UI 框架。
// Focus
let inputRef: HTMLElement;
let mounted = false;
onMount(() => {
mounted = true;
if (autofocus) {
inputRef.focus();
}
});
</script>
...
<input
type="text"
title={title ? title : placeholder}
bind:value
on:input={handleInput}
on:blur={handleBlur}
spellcheck={false}
autocomplete="off"
autocorrect="off"
autocapitalize="off"
inputmode={type === 'number' ? 'decimal' : 'text'}
{disabled}
bind:this={inputRef} />