iOS

[Swift4]UITextViewにプレースホルダをつける

投稿日:2018年5月7日 更新日:

はじめに

こんにちは、nukkyです。
UITextFieldにはプレースホルダが標準で用意されていますが、UITextViewには用意されていません。
そこで、今回はUITextViewにプレースホルダっぽいものを表示できるようなクラスを作成したいと思います!

前提条件

Xcode 9.1
iOS 11 Simulator
Swift 4.0

 

実装

まずはUITextViewを継承したクラスを作成します。
プレースホルダをStoryboard上で確認するために@IBDesignableを宣言します。

プレースホルダ表示用のUILabelを用意します

プレースホルダ表示用のUILabelを構築します

プレースホルダの表示/非表示を切り替えるメソッドを用意します

プレースホルダを用意するということはキーボードを表示し入力すると思うので、UITextViewは改行に対応しているためコードでキーボードのUIToolbarに閉じるボタンを追加します

awakeFromNibで上記のメソッドをよんでおきます、それとこのタイミングでプレースホルダの表示/非表示を切り替えるためにNotificationCenterからUITextViewTextDidChangeを検知するようにします

最後にStoryboardからプレースホルダを編集できるように@IBInspectableを用意します

 

 

さいごに

これでUITextViewにプレースホルダっぽいものを表示できるようになります!
個人的には結構UITextViewにプレースホルダをつけたい機会は多いと思っているので同じような思いをしている人のお役に立てればと。

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

iOS14を控えた今こそUINavigationBarAppearance

1 はじめに2 UINavigationBarAppearance2.1 タイトルのカスタマイズ2.2 背景のカスタマイズ2.3 UIBarButtonItemAppearance2.4 ボタンタイト ...

swift

UITableViewでTableViewCell(Xib)を使ってみた

1 はじめに1.1 前提条件1.2 事前準備2 TableViewを準備3 Xibを準備4 tableviewに表示するcellにxibを指定する5 さいごに はじめに どうも、はじめです。 今回はX ...

swift

[Swift]ログフレームワーク「CocoaLumberjack」をSwiftで使ってみた

1 はじめに2 準備3 実装3.1 出力先の設定3.2 ログの出力レベルを設定する3.3 ログの出力4 さいごに はじめに こんにちは、nukkyです。 今回はログ管理に便利なライブラリ「CocoaL ...

swift

Swift3 StoryBoard上でUIButtonやUILabel、UIViewのcornerを変更する

1 はじめに1.1 前提条件2 StoryBoardの準備3 カスタムクラスの作成3.1 class ~について3.2 @IBDesignableを記述すると3.2.1 Live Renderingと ...

iOS13で発生するUICollectionviewのカクつきを解消する

iOS13でCollectionViewの動作が少し変わりました。 Cellの入れ替え時にデータの更新を行う際にはどのように作成すれば良いか、関係のあるデリゲートを含め説明させていただいております。 おまけとして、Xcode11.3対応を行った際に対応した内容を簡単にですが記述しております。Xcode11対応をされる方の参考になればと思います。

フォロー

follow us in feedly

blog-page_side_responsive

2018年5月
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。
Get it on App Store
Get it on Google Play