FSTextView 1.8

FSTextView 1.8

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年11月

Vincent Lee维护。



  • 作者
  • fusheng

FSTextView

继承自 UITextView 的自定义 TextView,带有占位符和可限制最大输入字符数,已适配横竖屏切换,最低支持 iOS6。

2017/07/29 更新 版本 1.4

修复:达到最大限制字符数后执行 Undo 操作导致崩溃。

2017/07/19 更新 版本 1.3

修复:在 Storyboard 中设置 text 后,字符限制无效和占位符没有自动隐藏的问题。

新增:添加 canPerformAction 属性以设置 FSTextView 是否允许长按弹出 UIMenuController。

2017/04/14 更新 版本 1.2

修复#issue5


删除了原来的父类属性 text 的 getter 方法,如果需要获取一个去除首尾空格和换行符的字符串,则调用 formatText 即可。

FSTextView *textView = [FSTextView textView];
textView.formatText; // 该属性获取到的字符串为去除首尾空格和换行符的.
2017/04/02 更新 版本 1.1

更换注册通知的方式,避免影响其他 FSTextView 实例。

支持使用 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) {
    // 达到最大限制数后的相应操作.
}];

竖屏状态


Alt text

横屏状态


Alt text

目前已知的小问题:(不影响使用,Xcode8.3 已修复此问题)

在 Storyboard 中设置 Placeholder 颜色不会在 Storyboard 上立即显示,但已经是修改成功的,运行时 Placeholder 的颜色会是你所设置的颜色。

LICENSE

FSTextView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。