天天看點

Unity inputfield 實作顯示 隐藏密碼功能(在安卓中切換不打開下虛拟鍵盤)

乍一看實作這個功能很簡單,不就是切換一個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();
           

很簡單啦。