qingkuangshusheng110 / FSTextView

继承于UITextView的自定义TextView, 带placeholder和可限制最大输入字符数, 已适配横竖屏切换.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

    删除了原来重载的父类属性 textgetter 方法, 如果需要获取一个去除首尾空格和换行符的字符串则调用 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.

About

继承于UITextView的自定义TextView, 带placeholder和可限制最大输入字符数, 已适配横竖屏切换.

License:MIT License


Languages

Language:Objective-C 96.0%Language:Ruby 4.0%