打造一个支持占位符的多行文本输入框

Posted 大神之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打造一个支持占位符的多行文本输入框相关的知识,希望对你有一定的参考价值。

前言

众所周知,在ios开发中,UIKit提供的文本输入框有两种:UITextField和UITextView。前者支持站位付,但不支持多行输入,后者支持多行输入,但不支持占位符。而在实际开发过程中经常须要使用到既能支持多行输入,又能支持占位符的文本输入框,这就必须自己实现了。我在须要使用的时候也在网上找了一些别人写的,但是,说真的,没找到好用的,并且看他们的源码实现过程还较为复杂。所以就自己写了一个。

 

开发思路

这是一个很简单的东西,就不在此详细介绍实现的过程,代码已经上传到github,支持cocoapods。

这里简单介绍一下实现的思路:

就是在一个UITextView上放了一个UILabel,UILbel用来显示占位符,在初始化时通过通知监听UITextView的文本变化情况,当文本长度为0时,将UILabel隐藏,否则显示。并且需要经Label的字体设置为和TextView相同。就OK了!

 

使用方法

该类继承于UITextyView,只在接口中开放了一个placeholder的属性,使用时设置该属性即可,其他和UITextView一样。

 

github地址:https://github.com/a770322699/MYQPlaceholderTextView

cocopods使用:pod "MYQPlaceholderTextView"

 

以上是关于打造一个支持占位符的多行文本输入框的主要内容,如果未能解决你的问题,请参考以下文章

文本框的占位符值不会更改为原始值?

如何在 HTML5 的数字输入中显示占位符的文本

是否可以在文本框 ASP.NET 中使用多行占位符?

如何在输入中仅使用占位符斜体

JDBC中?占位符的使用说明

如何更改输入标签占位符的语言?