0

我想知道如何将浏览器的焦点设置到 Figma 插件打开的插件窗口中。我在这个插件中运行 React。

到目前为止尝试了不同的方法,但有谁知道如何以正确的方式做到这一点?

对于上下文:我想对键盘输入做出反应,并且不希望用户首先必须单击插件窗口才能使键盘输入起作用。没有涉及输入元素,因为我想获取快捷键的键盘事件。

提前致谢!!

4

1 回答 1

0

我不得不解决一个类似的问题,并注意到“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} />

https://github.com/iconify/iconify-figma/blob/cf9362ea53a30ff1e023bba9bb6dadcd4af6067e/src/icon-finder/components/ui/Input.svelte#L104-L112

于 2022-02-02T15:05:40.027 回答