【Swift】UITextViewの設定項目。文字列の校正、検出機能を追加する。(Swift 2.1、XCode 7.2)
UITextViewの設定
前回の記事でUITextView(以下、テキストビュー)の使い方を説明した。⇒「記事」
その続きとして、本記事ではテキストビューの設定項目について説明する。テキストビューを選択した状態で下図赤枠のアトリビュートインスペクタボタンを押して設定画面を表示する。
設定項目を1つずつ説明する。
Text
文字列の形式を「Plain」と「Attributed」の2つから選択する。
「Plain」は、文章中の個々の文字列に色や装飾の情報を含まない形式。ただし、テキスト全体の文字色やサイズは設定することができる。
「Attributed」は、文章中の個々の文字列に色や装飾の情報を含めることができる形式。
Behavior
テキストビューをタップしたときの振る舞いを設定する。
Editableにチェックが入っていると、テキストビューをタップするとキーボードが開き、テキストを編集することができる。
Selectableにチェックが入っていると、テキストビューを長押ししてテキストを部分選択することができるようになる。
Detaction
テキストビューから特定の文字列を検出し強調表示する。
Linksにチェックを入れると、URLやメールアドレスの文字列が検出される。
Addressにチェックを入れると、住所の文字列が検出される。
Phone Numberにチェックを入れると、電話番号が検出される。
Eventsにチェックを入れると日時などの予定が検出される。
Capitalization
単語の先頭の大文字入力についての設定。
「Words」は単語の先頭が大文字になるようにキーボード入力が大文字に自動で切り替わる。「Sentences」は一文の先頭が大文字になるようにキーボード入力が大文字に自動で切り替わる。「All Characters」はすべての文字が大文字入力になる。「None」は何も行われない。
以下は「Sentences」のプレイ動画
Correction
Yesに設定すると、編集中の単語の中から間違っている可能性のある単語を強調し、修正候補を示してくれる。
Spell Checking
Yesに設定するとスペルチェックをしてくれるようだが動作確認がとれない。使い方が分かったらここに追記する。
Keyboard Type
テーブルビューをタップしたときに表示するキーボードのタイプを指定する。選択肢は「ASCII Capable」、「Numbers and Punctuation」、「URL」、「Number Pad」、「Phone Pad」、「Name Phone Pad」、「E-mail Address」、「Decimal Pad」、「Twitter」、「Web Search」
下図は「Number Pad」を選択した場合に表示されるキーボード
Appearance
キーボードの外観を「Dark」と「Light」の2つから選択する。
Return Key
Returnキーに表示する文字を選択する。
選択肢は「Go」、「Google」、「Join」、「Next」、「Route」、「Search」、「Send」、「Yahoo」、「Done」、「Emergency Call」。これらの選択肢は実際に表示される文字列ではないものがある。
設定値ごとの日本語キーボード、英語キーボードに表示されるReturnキーの文字列を下表にまとめる。GoogleとSearchとYahooの設定値で表示される文字列がまったく同じなのが気になる。
設定値 | 日本語キーボード | 英語キーボード | ||
---|---|---|---|---|
1 | Go | 開く | Go | |
2 | 検索 | Search | ||
3 | Join | 接続 | Join | |
4 | Next | 次へ | Next | |
5 | Route | 経路 | Route | |
6 | Search | 検索 | Search | |
7 | Send | 送信 | Send | |
8 | Yahoo | 検索 | Search | |
9 | Done | 完了 | Done | |
10 | Emergency Call | 緊急電話 | Emergency Call |
下図は「Join」を設定した場合のキーボード
Auto-enable Return Key
チェックを入れると、テキストビューに何も入力されていない場合はReturnキーが押せなくなる。
Secure Text Entry
チェックを入れると、テキストビューに入力した文字列が「●」にマスキングされる。テキストフィールドでは動作確認がとれたが、テキストビューではチェックを入れても反映されない。理由が分かったらここに追記する。