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


関連記事

swift

iOSでライブラリFSCalendarをつかって簡単にカレンダー表示

1 はじめに2 準備3 実装3.1 Storyboard3.2 コード3.3 タップの取得4 さいごに はじめに こんにちは、nukkkyです。 ツール系アプリ開発時にカレンダー表示を よく使うと思い ...

swift

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

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

swift

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

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

Apple製のフレームワークCombineを触ってみた

1 はじめに2 Combineとは3 Publishers3.1 Future4 Subscribers4.1 sink4.2 assign5 Operators5.1 Prepend5.2 Appe ...

[iOS]ライセンスを簡単に生成してくれるLicensePlistを使って見た

1 はじめに1.1 作者様ページ1.2 前提条件2 インストール3 早速使ってみよう3.1 Settings.bundleの準備3.2 LicensePlistの作成3.3 自動更新の設定4 さいごに ...

フォロー

follow us in feedly

blog-page_side_responsive

東京改造計画(NewsPicks Book)
2018年5月
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

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