Ввод текста в Xamarin.iOS
Прием ввода текста пользователя осуществляется с UITextField
помощью однострочных входных данных и UITextView для многострочного редактируемого текста. Вы можете перетащить любой из этих элементов управления на экран и дважды щелкнуть, чтобы задать исходный текст.
На снимках экрана ниже показаны значки для этих элементов управления, расположенные на панели элементов в Visual Studio для Mac:
После того как вы назвали выход и сохранили файл Раскадровки, Visual Studio для Mac обновит .designer.cs
частичный класс и вы можете добавить код C#, ссылающийся на элемент управления в файл класса. Каждый элемент управления имеет собственные уникальные свойства и события, к которым можно получить доступ в коде C#.
UITextField
Элемент UITextField
управления чаще всего используется для принятия одной строки ввода текста, например имени пользователя или пароля. Ниже приведены некоторые варианты настройки элемента управления:
Ниже описаны следующие элементы управления:
- Заполнитель — это необязательно. Если задано, оно отображается при пустом текстовом поле, как правило, чтобы объяснить пользователю, какие входные данные ожидаются.
- Кнопка "Очистить" — это элементы управления, когда стандартная кнопка очистки (серый круг с (X)) отображается в текстовом поле в качестве способа быстрого очистки текста пользователем. Она может быть постоянно скрыта, постоянно видна или показана в зависимости от того, редактируется ли поле.
- Min Font Size and Adjust to Fit — позволяет настроить размер шрифта автоматически, чтобы поместить более длинный текст и предотвратить усечение, но ограничено не меньше указанного размера.
- Заглавная буква — следует ли автоматически прописные слова, предложения или все входные данные.
- Исправление— включена ли проверка орфографии и предложения.
- Клавиатура — управляет стилем клавиатуры, отображаемым для ввода, и поэтому ключи доступны на клавиатуре. Это включает номерную панель, Телефон панель, электронную почту, URL-адрес вместе с другими параметрами.
- Внешний вид — управляет стилем внешнего вида клавиатуры и будет либо темным, либо светлым.
- Возвращаемый ключ— измените метку на ключе return, чтобы лучше отразить, какие действия будут приняты. Поддерживаемые значения: Go, Join, Next, Route, Done и Search.
- Безопасный — определяет, маскируются ли входные данные (например, для ввода пароля).
Если вызывается textfield1
UITextField, добавленный на экран с помощью конструктора, можно задать или изменить его свойства в C# следующим образом:
textfield1.Placeholder = "type email here...";
textfield1.KeyboardType = UIKeyboardType.EmailAddress;
textfield1.ReturnKeyType = UIReturnKeyType.Send;
textfield1.MinimumFontSize = 17f;
textfield1.AdjustsFontSizeToFitWidth = true;
Xamarin.iOS предоставляет перечисления, где это необходимо, чтобы упростить выбор нужных параметров, таких как UIKeyboardType
и UIReturnKeyType
в приведенном выше фрагменте кода.
Отображение текста программным способом
Если вы не хотите создавать экран с помощью конструктора или динамически добавлять текст во время выполнения, можно создать и отобразить UITextField программным способом в ViewDidLoad
методе контроллера представления следующим образом:
var frame = new CGRect(10, 10, 300, 40);
textfield1 = new UITextField(frame);
View.Add(textfield1);
UITextView
Элемент UITextView
управления можно использовать для отображения текста, доступного только для чтения, или для приема ввода текста с несколькими строками. Он имеет множество таких же вариантов, как UITextField
(например, прописная буква, исправление и т. д.).
К определенным свойствам относятся:
- Поведение — является ли текст редактируемым или доступны только для чтения.
- Обнаружение — обнаруживает и преобразует входные данные в доступные для щелчка элементы, такие как номера телефонов, которые могут активировать звонок, адреса, которые становятся ссылками на Карты, URL-адреса, которые открываются в Safari или датах и времени, которые становятся событиями в календаре.
Если UITextView был добавлен на экран с конструктором, можно задать или изменить его свойства следующим образом:
textview1.Text = "Lorem ipsum..."; // lots of text can go here
textview1.Editable = true;
textview1.DataDetectorTypes = UIDataDetectorType.PhoneNumber | UIDataDetectorType.Link;