未分類

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]

-未分類

執筆者:

関連記事

no image

xcodeでファイル名の変更をする

xcodeでファイル名の変更をする簡単な方法↓ 参考:Xcodeでファイルの名前を変更またはリファクタリングする

no image

画面遷移の2つの方法

1.簡単な方法 Buttonを次の場面にControl押しながらドラックアンドドロップする。 基本、showかPresentModallyを選ぶ。 2.コードで繋ぐ方法 条件つきで画面遷移したい時に使 …

no image

iPhoneデバイス画面サイズ比較

XcodeのDeviceにiPoneXSがない理由 シュミレーター やStoryBoardでiPhoneX,XS,XRが見当たらない。 理由は、iPhone11など同じ画面サイズのデバイスがあるから。 …

no image

見やすい字幕のコツ

話しているそのままを文字起こしするのではなく、適宜読みやすいように変えて字幕を入れる。 ※正しい言葉に書き換えすぎるのもその人の個性や親しみがなくなるので、全て直そうとしなくてよい。より自然にわかりや …

no image

NavigationControllerを用いた画面遷移

ViewControllerを選択→Editor→Embed In→NavigationController NavigationControllerとNavigationBarが出てくる。 View …