【问题标题】:AS3 iOS 'catch'/'recognise' that user pressed return key on the soft keyboardAS3 iOS 'catch'/'recognise' 用户按下了软键盘上的返回键
【发布时间】:2013-06-07 15:04:00
【问题描述】:

我试图在网上找到解决方案,但找不到正确的答案。有谁知道如何“捕捉”/“识别”用户按下软键盘(iOS)上的返回键?以及如何检查输入是否等于例如正确答案?

非常感谢。

我的代码:

nt = new NativeText(1);
            this.nt = nt;
            this.nt.returnKeyLabel = ReturnKeyLabel.DONE;
            this.nt.autoCorrect = true;
            this.nt.fontSize = 40;
            this.nt.borderThickness = 1;
            this.nt.fontFamily = "Arial";
            this.nt.text = "pica";
            this.nt.color = 0xFFFFFF;
            this.nt.borderColor = 0xFFFFFF;
            this.nt.width = 500;
            this.nt.x = 70;
            this.nt.y = 70;

            LEVEL_02_STAGE.addChild(this.nt);

【问题讨论】:

  • 如果您尝试读取文本字段中输入的字符,您可以使用textInput 事件。它有一个文本属性,用于保存输入的字符。我不知道您是否可以从中获取字符代码来识别是否按下了回车键,但您当然可以使用它来将其与“正确答案”进行比较,看看它是否匹配。或者,您可以在收到输入后简单地读取文本字段的文本属性。
  • @GarryWong 谢谢。我会检查的。我正在使用native text imput with stage text,但我对 textInput 事件有点吃力。

标签: ios actionscript-3 iphone-softkeyboard


【解决方案1】:

您无法从 iOS 中的用户击键中提取大量数据。但是如果 keycode 是 13,你可以从 KeyboardEvent 中拉回 enter 命令。

因此,如果您已经将文本输入定义为 'var textfield:Textfield;'

textfield.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownPress);

function onKeyDownPress(e:KeyboardEvent):void
{
    if (e.keyCode == 13)
    {
        // Return key (done in iOS is pressed)
        if (textfield.text == "equalstothisstring")
        {
             trace("The input is valid and equals to 'equalstothisstring'");
        }
    }
}

【讨论】:

  • 我已经尝试过了,但它不起作用。我收到此错误:第 113 1119 行:通过静态类型 NativeText 的引用访问可能未定义的属性文本。我确定它与我正在使用的本机文本类有关,但我不知道如何修复它。如果你想看课程:native text imput with stage textgithub。非常感谢!
【解决方案2】:

我想在这篇文章中指出一些误导性的东西。

在 iOS 上,Return 和 Enter 不是一回事。

如果你创建一个多行文本字段,给它焦点,键盘会说“返回”而不是“完成”......键盘事件只会在“完成”而不是“返回”时触发......

【讨论】:

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多