You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ursina引擎InputField无法输入@字符的问题求助

Ursina InputField 无法输入@字符的解决方案

方案一:扩展允许输入的字符列表

Ursina的InputField默认有字符过滤规则,@不在默认允许范围内,直接修改allowed_characters属性即可解决:

from ursina import *

app = Ursina()

# 创建邮箱输入框,将@加入允许输入的字符集合
email_input = InputField(
    text='',
    # 包含字母、数字、常用邮箱符号及@
    allowed_characters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._-@'
)

app.run()

方案二:自定义按键监听(适配特殊键盘布局)

如果部分键盘布局下@的输入组合不是常规的Shift+2,或者方案一不生效,可以手动监听按键事件:

from ursina import *

app = Ursina()

email_input = InputField(text='')

def update():
    # 监听Shift+2(美式键盘的@输入组合),可根据实际键盘布局调整
    if held_keys['shift'] and held_keys['2']:
        # 仅在输入框获得焦点时生效
        if email_input.has_focus:
            email_input.text += '@'
            # 将光标移至文本末尾
            email_input.cursor_position = len(email_input.text)

app.run()

注意事项

  • 优先尝试方案一,这是最符合Ursina组件设计的解决方式
  • 方案二中的按键组合需根据用户实际使用的键盘布局调整(比如部分欧洲键盘用AltGr+Q触发@)
  • 输入前确保点击输入框使其获得焦点

内容的提问来源于stack exchange,提问作者erhan38

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:40:09