美文网首页iOS开发技术讨论ios 进阶iOS
【TIP】如何让输入框光标出现在开头

【TIP】如何让输入框光标出现在开头

作者: 千煌89 | 来源:发表于2014-12-12 15:33 被阅读1003次

直接来看这么一个需求:


Screen Shot 2014-12-12 at 15.18.10.png

转发别人的信息时,为了带上别人已发的文字和名字,还要让用户便捷输入,这时候需要直接显示键盘并且把光标放在开头以便直接输入。来看这一段代码:

- (void)customInterface
{
    self.title = @"转发";
    [self.textView setPlaceholder:@"想说点什么"];
    [self.textView setText:[NSString stringWithFormat:@"//%@:%@",_dynamic.nickname,_dynamic.content]];
    self.textView.selectedRange = NSMakeRange(0 ,0);
    [self.textView becomeFirstResponder];
}

NSMakeRange(0 ,0)便可以使光标出现在开头的位置,同理NSMakeRange(textLenth ,0) 就可以随心所欲地让光标出现在任何位置。

插入表情的问题


大家用手机QQ的时候是不是发现输入表情只能添加到末尾,就算选中了位置,还是只能添加到末尾?就如下图一样。


Screen Shot 2014-12-12 at 15.47.11.png

因为QQ每次获取到的emoji标记,都是append在text后面的。下面我来给大家介绍一种方法,能够插入到光标上次停留的位置,代码很简单

_emojiPicker.emojiBlock = ^(NSString *text) {
        NSLog(@"%i",_textView.selectedRange.location);
        [_textView insertText:text];
    };

哈哈哈,IM开发确实有挺多不起眼的技术点,希望在路上的小伙伴们看了有所帮助。

相关文章

网友评论

  • 千煌89:@吃得慢饿得快1 我其实也没做过gif的,不过我猜想,QQ可能是把text解析转化成html字符串显示的,比如有个UICoreTextView这玩意
  • 吃得慢饿得快1:那么QQ是怎么做的图(gif表情,不是png)文混排呢?

本文标题:【TIP】如何让输入框光标出现在开头

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