unity的inpufield在苹果手机上的设置

https://my.oschina.net/u/150705/blog/3167199
https://ask.csdn.net/questions/153898
https://blog.csdn.net/wlqchengzhangji/article/details/107862725

unity的inpufield在苹果手机上的设置_第1张图片

打开手机则为:
unity的inpufield在苹果手机上的设置_第2张图片

手机设置为九宫:
unity的inpufield在苹果手机上的设置_第3张图片

unity的inpufield在苹果手机上的设置_第4张图片
这样打开输入框就可以看到九宫的键盘了。

知识点2:在OnEndEdit下捕捉提交的事件
参考网址:https://blog.csdn.net/wlqchengzhangji/article/details/107862725
但是这个在Update中监听,不太好,目的是能满足的。

一个优化的方法:

void Start()
{
     
    m_input.onEndEdit.AddListener(OnEndEdit);
}

private void OnEndEdit()
{
     
    if(m_input.m_Keyboard != null && m_input.m_Keyboard.status == TouchScreenKeyboard.Status.Done)
    {
     
        m_text.text += m_input.text;
        Debug.LogError("xxxxxx");
    }
}

这样在OnEndEdit中添加判断就可以了。

however,事情总是会出各种问题,各种问题。。。。
在自己用ugui源码编译的dll,做UI的时候,直接将InputField的m_Keyboard属性public,进行判断。结果,结果居然是空的,拿不到。
原因在ugui源码中(不是最新源码2017左右),有如下的代码:
unity的inpufield在苹果手机上的设置_第5张图片
所有要进行调换下次序,就可以正常工作了:
unity的inpufield在苹果手机上的设置_第6张图片

只要参考的网址,是在Update中监听done状态,也是可以完成目的的。

你可能感兴趣的:(Unity)