继承自 UITextView 的自定义 TextView,带有占位符和可限制最大输入字符数,已适配横竖屏切换,最低支持 iOS6。
版本 1.4
修复:达到最大限制字符数后执行 Undo 操作导致崩溃。
版本 1.3
修复:在 Storyboard 中设置 text 后,字符限制无效和占位符没有自动隐藏的问题。
新增:添加 canPerformAction 属性以设置 FSTextView 是否允许长按弹出 UIMenuController。
版本 1.2
修复#issue5
删除了原来的父类属性 text 的 getter 方法,如果需要获取一个去除首尾空格和换行符的字符串,则调用 formatText 即可。
FSTextView *textView = [FSTextView textView];
textView.formatText; // 该属性获取到的字符串为去除首尾空格和换行符的.
版本 1.1
更换注册通知的方式,避免影响其他 FSTextView 实例。
pod 'FSTextView'
注意:使用 CocoaPods 引入时,纯代码创建没有任何问题,但在 Storyboard 中设置时会出现提示Fail to update auto layout status: Fail to load designables from path (null)
。解决方法是,在 Podfile 文件中添加 use_frameworks!
在 target 'YourProjectName' do
前面,但此方法只能用于 iOS8 及之后的版本。如果您的项目版本支持 iOS7 及更早版本,则会出现错误,或者您可以找到 Pod
文件夹中 FSTextView
的源代码,删除 FSTextView.h
中的 IB_DESIGNABLE
字段(删除后就没有了 Storyboard 中 FSTextView 的相关属性即设置即显示的效果)。
基本用法
FSTextView *textView = [FSTextView textView];
textView.placeholder = @"这是一个继承于UITextView的带Placeholder的自定义TextView, 可以设定限制字符长度, 以Block形式回调, 简单直观 !";
// 限制输入最大字符数.
textView.maxLength = 10;
// 添加输入改变Block回调.
[textView addTextDidChangeHandler:^(FSTextView *textView) {
// 文本改变后的相应操作.
}];
// 添加到达最大限制Block回调.
[textView addTextLengthDidMaxHandler:^(FSTextView *textView) {
// 达到最大限制数后的相应操作.
}];
竖屏状态
横屏状态
在 Storyboard 中设置 Placeholder 颜色不会在 Storyboard 上立即显示,但已经是修改成功的,运行时 Placeholder 的颜色会是你所设置的颜色。
FSTextView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。