乍一看實作這個功能很簡單,不就是切換一個inputfield的輸入類型,将其換做password就可以了嘛。
public void ToggleClick(bool isShow)
{
input.contentType = isShow ? InputField.ContentType.Standard : InputField.ContentType.Password;
input.Select();//重新選擇
}
這裡有一個問題就是,如果不加select()。這個方法的話,inputfiled不會重新整理。但是上面的代碼在android端運作時,就會出現,點選了顯示密碼按鈕後,虛拟鍵盤也彈出來了。因為select看名字就知道是一個選擇按鈕,選擇後,當然就會彈出虛拟鍵盤了。
那麼如何才能重新整理内容,并且不彈出虛拟鍵盤呢?
既然沒有公開的重新整理方法,那我們就繼承inputfield自己寫一個好了。然後檢視了一下源碼,果然發現有一個私有的UpdateLabel方法,看了一下具體實作,果然就是重新整理顯示框。
将inputfiled換成自己的。
public class CanHideInputField : InputField
{
public void MyUpdateLabel()
{
this.UpdateLabel();
}
}
調用i
f (field.inputType == InputField.InputType.Password)
{
field.inputType = InputField.InputType.Standard;
}
else
{
field.inputType = InputField.InputType.Password;
}
field.MyUpdateLabel();
很簡單啦。