未分類

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]

-未分類

執筆者:

関連記事

六角形とパスでモーショングラフィクスを作る

六角形のシェイプ と、パスで描いた線を使ってモーショングラフィクスを作る。 六角形は回転しながら外半径を大きくする。 線のパスは「追加」→「パスのトリミング」→「開始点」「終了点」を調整して、動きをつ …

PremierePro テキストの一部分だけ色(フォント)を変える

テキストの一部分だけ色やフォントを変えたいが、テキストスタイルは一つのクリップ全てに反映されてしまい、一部の文字だけ変えることができない。 手動で選択してカラーやフォントを変えるしかないっぽい。 エッ …

プレミアプロ講座応用編2_レガシータイトル

レガシータイトル より手軽にデザイン性が高いテロップを作れる。   クリップをoption押しながらずらすとコピーできるが、基本一つ作ったら伸ばしてカットして作っていく。 テロップごとにプロ …

no image

DateFormatterの使い方

Date型の日付を文字列にして表示する。 let date = Date() import Foundation //フォーマットを指定 let formatter = DateFormatter() …

画像を挿入して、位置や大きさを調整する方法

プロジェクトパネルに読み込む ↓ シーケンスに持っていってクリップを作成 ↓ そのクリップを選択した状態でエフェクトコントロールを開くと、位置や大きさが調整できる。(fxがつく) ※なぜか直接動かせな …