键入文本
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或视图根本不在屏幕上。