Xamarin.iOS 中的文本输入

对于单行输入,可使用 UITextField 接受用户文本输入,对于多行可编辑文本,可使用 UITextView 来完成。 可以将其中任一控件拖动到屏幕上,然后双击该控件即可设置初始文本。

下面的屏幕截图显示了这些控件的图标,这些控件位于 Visual Studio for Mac 的工具箱板中:

UITextField

UITextView

命名输出口并保存情节提要文件后,Visual Studio for Mac 将更新 .designer.cs 分部类,并且可以将引用控件的 C# 代码添加到类文件中。 每个控件都有自己的唯一属性和事件,可在 C# 代码中访问。

UITextField

UITextField 控件通常用于接受单行文本输入,例如用户名或密码。 此处显示了可用于自定义控件的一些选项:

UITextField 属性

下面介绍了这些控件:

  • 占位符 - 此控件是可选的。 如果设置,此控件会在文本字段为空时显示,通常是为了向用户解释预期的输入。
  • 清除按钮 - 此控件控制何时在文本字段中显示标准清除按钮(带有 (X) 的灰色圆圈),这是用户快速清除文本的一种方式。 它可以永久隐藏、永久可见或显示,具体取决于是否正在编辑字段。
  • “最小字号”和“调整为合适大小”- 允许自动调整字号以适应较长的文本并防止截断,但限制为不小于指定的大小。
  • 大写 - 是否自动大写单词、句子或所有输入。
  • 更正 - 是否启用拼写检查和建议。
  • 键盘 - 控制输入时显示的键盘样式,以及键盘上可用的键。 这包括数字键盘、电话键盘、电子邮件、URL 以及其他选项。
  • 外观 - 控制键盘的外观样式,可以是深色或浅色主题
  • 返回键 – 更改返回键上的标签,以更好地反映将要执行的操作。 支持的值包括“前往”、“加入”、“下一个”、“路线”、“完成”和“搜索”。
  • 安全 – 识别输入是否为掩码形式(如密码输入)

如果已使用设计器将名为 textfield1 的 UITextField 添加到屏幕,则可以在 C# 中设置或更改其属性,如下所示:

textfield1.Placeholder = "type email here...";
textfield1.KeyboardType = UIKeyboardType.EmailAddress;
textfield1.ReturnKeyType = UIReturnKeyType.Send;
textfield1.MinimumFontSize = 17f;
textfield1.AdjustsFontSizeToFitWidth = true;

Xamarin.iOS 在适当的情况下提供枚举,以便轻松选择所需的设置,例如上述代码片段中的 UIKeyboardTypeUIReturnKeyType

以编程方式显示文本

如果不想使用设计器设计屏幕,或者希望在运行时动态添加某些文本,则可以在视图控制器的 ViewDidLoad 方法中以编程方式创建和显示 UITextField,如下所示:

var frame = new CGRect(10, 10, 300, 40);
textfield1 = new UITextField(frame);
View.Add(textfield1);

UITextView

UITextView 控件可用于显示只读文本或接受多行文本输入。 它有许多与 UITextField 相同的选项(例如大写、更正等)。

UITextView 属性

特定属性包括:

  • 行为 - 文本是可编辑还是只读。
  • 检测 - 检测输入的数据并将其转换为可点击的元素,例如可以触发呼叫的电话号码、成为指向地图的链接的地址、在 Safari 中打开的 URL 或日历中成为事件的日期和时间。

如果已使用设计器将 UITextView 添加到屏幕,则可以按如下所示设置或更改其属性:

textview1.Text = "Lorem ipsum..."; // lots of text can go here
textview1.Editable = true;
textview1.DataDetectorTypes = UIDataDetectorType.PhoneNumber | UIDataDetectorType.Link;