【问题标题】:Get keyboard show event in Unity3d在 Unity3d 中获取键盘显示事件
【发布时间】:2015-06-02 07:11:42
【问题描述】:

我正在制作一个仅适用于 iPad 的 unity3d 游戏。

在一个屏幕中,我需要从用户那里获取文本输入,为此我使用Input Field.

当用户通过点击输入字段打开键盘时,我需要进行一些 UI 更改。为此,我需要键盘打开(显示)事件。输入字段只给我两个事件 1. 文本更改 2. 失去焦点。但我需要获得焦点事件。

我阅读了官方文档,但找不到任何相关事件。我在互联网上搜索事件,我得到击键事件,但在用户开始输入之前我需要键盘打开事件。

在原生 iOS 应用中,我们使用UITextFieldDelegate 方法- (void)textFieldDidBeginEditing:(UITextField *)textFieldUIKeyboardDidShowNotification。 Unity3d 中有什么方法可以实现这种行为。

【问题讨论】:

    标签: ios unity3d


    【解决方案1】:

    对于带有新 UI 的输入字段,有一个 isFocused 变量。

    http://docs.unity3d.com/ScriptReference/UI.InputField.html

    http://docs.unity3d.com/ScriptReference/UI.InputField-isFocused.html

    #pragma strict
    // Required when Using UI elements.
    public class Example {
        public var mainInputField;
        function Update() {
            //If the input field is focused, change its color to green.
            if (mainInputField.GetComponent.<InputField>().isFocused == true) {
                mainInputField.GetComponent.<Image>().color = Color.green;
            }
        }
    }
    

    因此,如果您的字段获得焦点并返回 true,则您可以执行一些代码。也就是说,如果我理解正确的话。

    【讨论】:

      【解决方案2】:

      我找不到任何可以让您知道 InputField 已被选择的内容,但解决方法可能是将 Interactable 属性设置为 false 并在该字段附近有一个“编辑”按钮。当按下“编辑”按钮时,您可以更改 UI 元素并设置 InputField.interactable = true。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-06
        • 2013-08-02
        • 2011-11-25
        • 1970-01-01
        相关资源
        最近更新 更多