未分類

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

GoogleAdMobのバナーのサイズを指定する

import UIKit import GoogleMobileAds class ViewController: UIViewController { @IBOutlet weak var bann …

no image

tableViewの空のCellを非表示にする

viewDidLoadに以下を追加するだけ。 //空のセルの線を非表示 tableView.tableFooterView = UIView()

no image

マルチデバイスに対応する方法

マルチデバイス対応とは iPhoneのデバイスによって画面サイズが異なるため、それぞれの端末で正常に表示するための対応。 マルチデバイス対応方法 主に3つの方法がある。 ・オートレイアウト ・プログラ …

no image

xcode関連の不要なデータを消して容量を増やす

PremireProで書き出しができない時は、容量不足が原因の可能性あり。 xcodeが容量取りすぎているので、以下の通りにファイルなどを削除したら無事レンダリングできた。 参考:不要なXcodeのフ …

no image

テロップ文字位置を一括で変更する方法

字幕の位置を全てのクリップで上方向に移動させたい時など。   ①任意の字幕クリップにて、エフェクトコントロールのモーションで文字位置を修正 ②モーションを右クリックでコピー ③位置を変更した …