Partilhar via


Entrada de texto no Xamarin.iOS

A aceitação da entrada de texto do usuário é realizada com o UITextField para entradas de linha única e UITextView para texto editável de várias linhas. Você pode arrastar um desses controles para uma tela e clicar duas vezes para definir o texto inicial.

As capturas de tela abaixo mostram os ícones para esses controles, localizados no Toolbox Pad no Visual Studio para Mac:

UITextField

UITextView

Depois de nomear a saída e salvar o arquivo Storyboard, o Visual Studio para Mac atualizará a classe parcial e você poderá adicionar código .designer.cs C# que faz referência ao controle ao arquivo de classe. Cada controle tem suas próprias propriedades e eventos exclusivos que podem ser acessados em seu código C#.

UITextField

O UITextField controle é mais frequentemente usado para aceitar uma única linha de entrada de texto, como um nome de usuário ou senha. Algumas das opções disponíveis para personalizar o controle são mostradas aqui:

UITextField Propriedades

Esses controles são explicados abaixo:

  • Espaço reservado – Isso é opcional. Se definido, ele é exibido quando o campo de texto está vazio, geralmente para explicar ao usuário qual entrada é esperada.
  • Botão Limpar – Controla quando o botão de limpeza padrão (o círculo cinza com (X)) aparece no campo de texto, como uma maneira de o usuário limpar o texto rapidamente. Ele pode ser permanentemente oculto, permanentemente visível ou mostrado, dependendo se o campo está ou não sendo editado.
  • Tamanho mínimo da fonte e ajuste para ajustar – Permite que o tamanho da fonte seja ajustado automaticamente para ajustar texto mais longo e evitar truncamento, mas limitado a não menor do que o tamanho especificado.
  • Uso de maiúsculas – Seja para colocar automaticamente palavras, frases ou todas as entradas em maiúsculas.
  • Correção – Se a verificação ortográfica e as sugestões estão ativadas.
  • Teclado – Controla o estilo de teclado exibido para a entrada e, portanto, quais teclas estão disponíveis no teclado. Isso inclui teclado numérico, teclado telefônico, e-mail, URL e outras opções.
  • Aparência – Controla o estilo de aparência do teclado e terá temática escura ou clara.
  • Chave de retorno – altere o rótulo na tecla de retorno para refletir melhor a ação que será tomada. Os valores suportados incluem Go, Join, Next, Route, Done e Search.
  • Seguro – Identifica se a entrada está mascarada (como para uma entrada de senha).

Se um UITextField chamado textfield1 tiver sido adicionado a uma tela com o designer, você poderá definir ou alterar suas propriedades em C# da seguinte maneira:

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

O Xamarin.iOS fornece enumerações quando apropriado para facilitar a seleção das configurações desejadas, como o trecho de UIKeyboardType código e UIReturnKeyType no acima.

Exibir texto programaticamente

Se você não quiser projetar sua tela com o designer ou se quiser adicionar dinamicamente algum texto em tempo de execução, poderá criar e exibir um UITextField programaticamente no ViewDidLoad método de um controlador de exibição como este:

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

UITextView

O UITextView controle pode ser usado para exibir texto somente leitura ou para aceitar entrada de texto de várias linhas. Ele tem muitas das mesmas opções que o UITextField (como Capitalização, Correção, etc).

Propriedades UITextView

As propriedades específicas incluem:

  • Comportamento – Se o texto é editável ou somente leitura.
  • Detecção – Detecta e converte os dados inseridos em elementos clicáveis, como números de telefone que podem disparar uma chamada, endereços que se tornam links para o Google Maps, URLs que abrem no Safari ou datas e horas que se tornam eventos no Calendário.

Se um UITextView tiver sido adicionado a uma tela com o designer, você poderá definir ou alterar suas propriedades da seguinte maneira:

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