乍一看實(shí)現(xiàn)這個(gè)功能很簡(jiǎn)單梳猪,不就是切換一個(gè)inputfield的輸入類型,將其換做password就可以了嘛蒸痹。
public void ToggleClick(bool isShow)
{
input.contentType = isShow ? InputField.ContentType.Standard : InputField.ContentType.Password;
input.Select();//重新選擇
}
這里有一個(gè)問(wèn)題就是春弥,如果不加select()。這個(gè)方法的話叠荠,inputfiled不會(huì)刷新匿沛。但是上面的代碼在android端運(yùn)行時(shí),就會(huì)出現(xiàn)蝙叛,點(diǎn)擊了顯示密碼按鈕后俺祠,虛擬鍵盤也彈出來(lái)了。因?yàn)閟elect看名字就知道是一個(gè)選擇按鈕借帘,選擇后蜘渣,當(dāng)然就會(huì)彈出虛擬鍵盤了。
那么如何才能刷新內(nèi)容肺然,并且不彈出虛擬鍵盤呢蔫缸?
既然沒(méi)有公開(kāi)的刷新方法,那我們就繼承inputfield自己寫一個(gè)好了际起。然后查看了一下源碼拾碌,果然發(fā)現(xiàn)有一個(gè)私有的UpdateLabel方法吐葱,看了一下具體實(shí)現(xiàn),果然就是刷新顯示框校翔。
將inputfiled換成自己的弟跑。
public class CanHideInputField : InputField
{
public void MyUpdateLabel()
{
this.UpdateLabel();
}
}
調(diào)用
if (field.inputType == InputField.InputType.Password)
{
field.inputType = InputField.InputType.Standard;
}
else
{
field.inputType = InputField.InputType.Password;
}
field.MyUpdateLabel();
很簡(jiǎn)單啦。