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



我有一个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>参数。

相关内容

  • 没有找到相关文章