c# - unity InputField OnValueChanged事件显示InputField.text少一个字符

标签 c# unity3d search

我有一个 InputField,我将它用作搜索栏。我无法使用 OnValueChanged 自动搜索,因为最初,如果我输入任何字符,如 a,文本字段将为 ""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);
        }
    }

此方法附加到输入字段的 On Value Changed 事件,searchText 是该输入字段的文本。

最佳答案

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

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>参数。

关于c# - unity InputField OnValueChanged事件显示InputField.text少一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51382621/

相关文章:

c# - C#中的静态和动态多态性

c# - 统一: What is Unity Measurements?

ios - 如何在ViewController Xcode中嵌入Unity项目( objective-c /swift)

sqlite - 在 SQLite 中使用乱序词在数据库中搜索

python - 在字典中递归查找键

c# - 如何为高级搜索屏幕构建自定义表达式

c# - 从 Roles 授权更改为 Claims 授权

c# - 带参数的 OdbcCommand 不返回任何内容

c# - 如何保护可能在多线程或异步环境中使用的资源?

unity3d - Raycast 未检测到对象上的正确位置