第十五章:交互式界面(八)

鍵入文本

Xamarin.Forms定義了三個用於從用戶獲取文本輸入的視圖:

  • 輸入單行文本。
  • 多行文本的編輯器。
  • SearchBar專門用於搜索操作的單行文本。

Entry和Editor都源自InputView,它源自View。 SearchBar直接從View派生。
如果輸入的文本超出視圖的寬度,則Entry和SearchBar都會實現水平滾動。 編輯器實現自動換行,並且能夠垂直滾動文本以提高其高度。
鍵盤和焦點
Entry,Editor和SearchBar與所有其他視圖的不同之處在於它們使用手機的屏幕鍵盤,有時也稱爲虛擬鍵盤。 從用戶的角度來看,點擊Entry,Editor或SearchBar視圖會調用從底部滑入的屏幕鍵盤。 點擊屏幕上的任何其他位置(除了另一個Entry,Editor或SearchBar視圖)通常會使鍵盤消失,有時鍵盤可能會以其他方式被解除。
從程序的角度來看,鍵盤的存在與輸入焦點密切相關,輸入焦點源於桌面圖形用戶界面環境。在桌面環境和移動設備上,來自鍵盤的輸入一次只能被引導到一個用戶界面對象,並且該對象必須能夠被用戶清楚地選擇和識別。接收鍵盤輸入的對象稱爲具有鍵盤輸入焦點的對象,或者更簡單地說,只是輸入焦點或焦點。
VisualElement類定義了與輸入焦點相關的幾個方法,屬性和事件:

  • Focus方法嘗試將輸入焦點設置爲可視元素,如果成功則返回true。
  • Unfocus方法從可視元素中刪除輸入焦點。
  • 如果可視元素當前具有輸入焦點,則IsFocused get-only屬性爲true。
  • 當可視元素獲取輸入焦點時,將觸發Focused事件。
  • 當可視元素失去輸入焦點時,將觸發Unfocused事件。

如您所知,移動環境對鍵盤的使用遠遠少於桌面環境,並且大多數移動視圖(例如您已經看過的Slider,Stepper和Switch)根本不使用鍵盤。雖然VisualElement類的這五個與焦點相關的成員似乎實現了一個用於在視覺元素之間傳遞輸入焦點的通用系統,但它們實際上只與Entry,Editor和SearchBar有關。
這些視圖表示它們具有輸入焦點,閃爍的插入符顯示文本輸入點,並且它們觸發鍵盤向上滑動。當視圖失去輸入焦點時,鍵盤會向下滑動。
視圖必須將其IsEnabled屬性設置爲true(默認狀態)才能獲取輸入焦點,當然IsVisible屬性也必須爲true或視圖根本不在屏幕上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章