未分類

TextViewにPlaceholderを追加する簡単な方法

投稿日:

TextViewはTextFieldのようにPlaceholderを設定できないため、自分で実装する必要がある。

ここでは、TextViewの上にLabelを設置し、TextViewの入力判定を行い、入力された時は非表示にする方法でPlaceholderを作成する。

また入力判定にはUITextViewDelegateのデリゲートメソッドを使う。

1. StoryBoardでTextViewの上にLabelを設置する。

TextViewの上にLabelを設置して、textを「メモ」に設定し、色をグレーにした。


2. UITextViewDelegateプロトコルと、デリゲートを設定

プロトコル追加↓

class ViewController: UIViewController,UITextViewDelegate{

デリゲート設定↓(※IBOutletでtextViewやLabelを繋ぐのを忘れずに)

textView.delegate = self

3.textViewDidChange()メソッドで入力判定しラベルの表示/非表示を設定

//テキストが書き換えられるたびに呼ばれる
   func textViewDidChange(_ textView: UITextView) {
    //テキスト未入力の場合のみLabelを表示する
    memoLabel.isHidden = textView.text.isEmpty ? false : true
    }

テキストを入力するとラベルが非表示となる↓

参考:UITextViewにてPlaceholderを実装する
[Swift 4.2] UITextViewにプレースホルダーを追加する[iOS 12]

-未分類

執筆者:

関連記事

画面の下部分だけ字幕が映らない対処法

字幕や図形が、画面下部分だけ映らない時は、 エフェクトコントロールのモーションで位置を変更すると、下部分に移動することができた。 原因は不明。 参考:Premiere Pro CCでテロップ(タイトル …

no image

プロトコルの仕様書を見るコツ

プロトコルのデリゲートメソッドを確認したい。 プロトコル名をcommand+クリックJump to Definitionで設計図が見られる。 protocol UITableViewDelegateの …

no image

collectionViewの基本的な使い方

1.collectionViewを画面一杯に配置する。CellのIdentifierに任意の名前「Cell」とつける。 2.プロトコルを追加し、デリゲートの設定をする。 class ViewContr …

ガイドの線(セーフマージン)を表示させる方法

画面右クリック→セーフマージンにチェック

no image

AutoLayoutでサイズを比率で指定する

control押しながら、基準にしたいもの(Viewとか)にドラッグ。 Equal HeightまたはEqual Widthsを選択。 Multiplierを50パーセントにしたいなら、0.5に設定。 …