谈UITextView、UITextField的InPutVie

作者: minggo | 来源:发表于2016-01-07 00:19 被阅读11795次

    无论是富媒体输入还是聊天表情输入,都经常切换系统键盘和自定义输入View。跟Android不一样的是,iOS需要在输入控件如UITextView聚焦才能出现键盘,默认情况下一旦输入控件失焦点有没有切换到其他输入控件的时候,键盘随之消失。尽管,可以通过text属性添加响应内容,但是没有光标的位置提示总是个缺陷。

    如腾讯的微信和手Q的iOS版都是没有很好处理光标问题,特别是微信iOS版的表情输入还是显示“[/微笑]”字符串。还好我看到的新浪微博对这个处理perfect。那么以下就是开始我们的主题--InputView.

    Scenes:

    1. 输入框的键盘消失后,焦点还在。
    2. 输入框的能够显示表情。
    3. 获取输入框的内容时候,表情转换成对应字符串。
    4. 表情输入和系统键盘切换。

    Think:

    1. 默认情况下,系统盘消失后UITextViewUITextField的焦点都会消失,这种情况不像Android开发可以单独呼出键盘和降下键盘,只能选择InputView。
    2. UITextView添加表情通过NSTextAttachment.image这个属性插入图片。
    3. 显示了表情后,获取带表情内容需要切换成对应字符串,继承NSTextAttachment的子类多定义一个NSString类型emotionStr,在编写一个NSAttributeString的Category进行处理字符转换。
    4. 切换系统键盘和表情键盘通过监听键盘的Show和Hide的通知,将UITextViewUITextField的InputView设置成nil。
    5. 并且使用自定义的UIView作为UITextViewUITextFieldinputAccessoryView属性作为切换键盘按钮。

    Step Processes:

    1.以UITextview为例,在Storyboard设计UI如下图。

    微信公众号:minggo_dev

    相关文章

      网友评论

      本文标题:谈UITextView、UITextField的InPutVie

      本文链接:https://www.haomeiwen.com/subject/axkfkttx.html