Xamarin.iOS でのテキスト入力
ユーザーのテキスト入力の受け入れは、単一行入力の場合は UITextField
を使用し、複数行の編集可能テキストの場合は UITextView を使用して実行されます。 これらのコントロールのいずれかを画面にドラッグし、ダブルクリックして初期テキストを設定できます。
次のスクリーンショットは、Visual Studio for Mac のツールボックス パッドにあるこれらのコントロールのアイコンを示しています。
アウトレットに名前を付けてストーリーボード ファイルを保存すると、Visual Studio for Mac によって .designer.cs
部分クラスが更新され、コントロールを参照する C# コードをクラス ファイルに追加できます。 各コントロールには、C# コードでアクセスできる独自の一意のプロパティとイベントがあります。
UITextField
この UITextField
コントロールはほとんどの場合、ユーザー名やパスワードなどの 1 行のテキスト入力を受け入れるために使用されます。 コントロールのカスタマイズに使用できるオプションの一部を次に示します。
これらのコントロールについて以下に説明します。
- [プレースホルダー] – これは省略可能です。 設定すると、テキスト フィールドが空の場合に、通常は、必要な入力の内容をユーザーに説明するために表示されます。
- [消去ボタン] – ユーザーがテキストをすばやくクリアする方法として標準の消去ボタン ((X) が付いた灰色の円) がテキスト フィールドに表示されるタイミングを制御します。 フィールドが編集中かどうかに応じて、常に非表示にしたり、常に表示したり、表示したりすることができます。
- [最小フォント サイズ] と [サイズに合わせて調整] – 長いテキストに合わせてフォント サイズを自動的に調整し、切り捨てを防ぐことができますが、指定したサイズ以上に制限します。
- [大文字化] – 単語、文、またはすべての入力を自動的に大文字にするかどうか。
- [修正] – スペル チェックと修正候補が有効かどうか。
- [キーボード] – 入力に表示されるキーボード スタイルと、キーボードで使用できるキーを制御します。 これには、Number Pad、Phone Pad、Email、URL、その他のオプションが含まれます。
- 外観 – キーボードの外観スタイルを制御します。暗いテーマまたは明るいテーマになります。
- Return キー – 実行されるアクションをより適切に反映するように Return キーのラベルを変更します。 サポートされる値には、Go、Join、Next、Route、Done、Search などがあります。
- [安全性] – 入力がマスクされているかどうかを識別します (パスワード入力など)。
UITextField によって呼び出された textfield1
がデザイナーを使用して画面に追加されている場合は、次のように C# でそのプロパティを設定または変更できます。
textfield1.Placeholder = "type email here...";
textfield1.KeyboardType = UIKeyboardType.EmailAddress;
textfield1.ReturnKeyType = UIReturnKeyType.Send;
textfield1.MinimumFontSize = 17f;
textfield1.AdjustsFontSizeToFitWidth = true;
Xamarin.iOS では、必要な設定を簡単に選択できるように、必要に応じて列挙型 (上記のコード スニペットの UIKeyboardType
や UIReturnKeyType
など) が提供されます。
テキストをプログラムで表示する
デザイナーを使用して画面を設計しない場合、または実行時にテキストを動的に追加する必要がある場合は、次のようにビュー コントローラーの ViewDidLoad
メソッドで UITextField をプログラムで作成して表示できます。
var frame = new CGRect(10, 10, 300, 40);
textfield1 = new UITextField(frame);
View.Add(textfield1);
UITextView
UITextView
コントロールは、読み取り専用のテキストを表示したり、複数行のテキスト入力を受け入れたりするために使用できます。 これには、UITextField
と同じオプション (大文字と小文字の指定、修正など) の多くがあります。
具体的なプロパティは次のとおりです。
- [動作] – テキストが編集可能か読み取り専用か。
- [検出] – 入力されたデータを検出して、通話をトリガーできる電話番号、マップへのリンクになるアドレス、Safari で開く URL、カレンダーのイベントになる日時などのクリック可能な要素に変換します。
UITextView がデザイナーを使用して画面に追加されている場合は、次のようにプロパティを設定または変更できます。
textview1.Text = "Lorem ipsum..."; // lots of text can go here
textview1.Editable = true;
textview1.DataDetectorTypes = UIDataDetectorType.PhoneNumber | UIDataDetectorType.Link;