答案 0 :(得分:2)
如果要构建自定义条目呈现器,则必须应用Xamarin.Forms用于确定目标本机输入字段的输入类型的相同逻辑。
Android
从Xamarin.Forms source code:
else if (self == Keyboard.Chat)
result = InputTypes.ClassText | InputTypes.TextFlagCapSentences |
InputTypes.TextFlagNoSuggestions;
result
的类型为InputTypes
,然后将其设置为Android Entry control's InputType
:
Control.InputType = keyboard.ToInputType();
iOS
从Xamarin.Forms source code:
else if (keyboard == Keyboard.Chat)
{
textInput.AutocapitalizationType = UITextAutocapitalizationType.Sentences;
textInput.AutocorrectionType = UITextAutocorrectionType.Yes;
}
textInput
是IUITextInput
的地方。
UWP 从Xamarin.Forms source code:
else if (self == Keyboard.Chat)
{
name.NameValue = InputScopeNameValue.Chat;
}
其中name
是Keyboard
类型的实例。但是,这就是set directly in EntryRenderer
:
Control.InputScope = entry.Keyboard.ToInputScope();
为简化起见,您可以这样做:
Control.InputScope = InputScopeNameValue.Chat;
WPF
这里Xamarin.Forms设置了默认的输入类型,因为没有特殊的聊天键盘选项。