Unity InputField OnValueChanged事件为InputField.text少显示一个字符

时间:2018-07-17 13:27:16

标签: c# unity3d search

我有一个InputField用作搜索栏。我无法使用OnValueChanged自动搜索,因为最初,如果我输入""之类的字符,则a仍为{{1 }}而不是inputField.text,因为在添加下一个字符之前,不会进行搜索。

在活动的第一击中有什么方法可以获取当前文本?

""

此方法附加到输入字段的a事件,而public void SearchGame() { try { if (!string.IsNullOrEmpty(SearchText.text) && SearchText.text != "") { var listofvalues = list1.Where(x => x.name.ToLower().StartsWith(SearchText.text.ToLower(), StringComparison.CurrentCulture)).ToList(); if (listofvalues.Count > 0) { foreach (var value in listofvalues) { //loading } } else { //No search result } } else { //stuff } } catch (Exception exception) { LoggingManager.Error(exception); } } 是该输入字段的文本。

1 个答案:

答案 0 :(得分:1)

看起来您没有在此事件上使用动态参数分配。

public void SearchGame(string text)
{
    try
    {
        if (!string.IsNullOrEmpty(text) && text != "")
        {                    
            var listofvalues = list1.Where(x => x.name.ToLower().StartsWith(text.ToLower(), StringComparison.CurrentCulture)).ToList();

            if (listofvalues.Count > 0)
            {                       
                foreach (var value in listofvalues)
                {                           
                    //loading 
                }
            }
            else
            {
                //No search result
            }
        }
        else
        {
           //stuff                   
        }
    }
    catch (Exception exception)
    {
        LoggingManager.Error(exception);
    }
}

请注意,某些事件具有应包含在处理程序签名中的参数。例如OnValueChanged期望UnityAction<string>作为其处理程序,或者只是具有签名SearchGame(string)的方法。

因此,传递SearchGame()将忽略<string>参数。