我有一个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
是该输入字段的Text。 最佳答案
看起来您没有在此事件上使用动态参数分配。
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/