FSTextView
继承于UITextView的自定义TextView, 带placeholder和可限制最大输入字符数, 已适配横竖屏切换.
支持使用CocoaPods引入, Podfile文件中添加:
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) {
// 达到最大限制数后的相应操作.
}];
竖屏状态
横屏状态
目前已知的小问题: (不影响使用, Xcode8.3 已修复了这个问题)
在Storyboard中设置Placeholder颜色不会在Storyboard上马上呈现, 但是其实已经修改成功的了, 运行时Placeholder的颜色会是你所设置的颜色.
Requirements
iOS 6.0 +, Xcode 7.0 +
Version
-
1.8 :
Fix: 因为
UIMenuController
引起的unrecognized selector sent to instance
错误. -
1.4 :
Fix: 达到最大限制字符数后 Undo 行为导致crash.
-
1.3 :
Fix: 在
Storyboard
中设置text
后, 字符限制没有生效和 placeholder 没有自动隐藏的问题.新增: 添加
canPerformAction
属性来设定FSTextView
是否允许长按弹出UIMenuController. -
1.2 :
修复 #issue5
删除了原来重载的父类属性
text
的getter
方法, 如果需要获取一个去除首尾空格和换行符的字符串则调用formatText
即可.FSTextView *textView = [FSTextView textView]; textView.formatText; // 该属性获取到的字符串为去除首尾空格和换行符的.
-
1.1 :
更换注册通知的方式, 避免影响其它的
FSTextView
实例.
License
FSTextView is available under the MIT license. See the LICENSE file for more info.