在textView中的光标位置插入表情或者文字

本文详细介绍了如何在文本编辑器中插入表情符号并保持光标的正确位置,包括两种实现方法和光标定位的后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:
    //获取光标定位的位置

    int location  = self.textView.selectedRange.location;

    //插入前文本框的内容

    NSString *textStr = self.textView.text;    

    //插入后文本框的内容

    NSString *resultStr = [NSString stringWithFormat:@"%@%@%@",[textStr substringToIndex:location],username,[textStr substringFromIndex:location]];

    //赋值

    self.textView.text = resultStr;

补充:

    int location  = contentText.selectedRange.location;
    NSString * textStr = contentText.text;
    NSString *str = [faceArr objectAtIndex:sender.tag];
    NSString *resultStr = [NSString stringWithFormat:@"%@%@%@",[textStr substringToIndex:location],str,[textStr substringFromIndex:location]];
    contentText.text = resultStr;


方法二:

//  将表情插入到当前光标

    NSString *str = [faceArr objectAtIndex:sender.tag];
    NSRange range = [contentText selectedRange];
    NSMutableString *top = [[NSMutableString alloc] initWithString:[contentText text]];
    NSString *addName = [NSString stringWithFormat:@"%@",str];
    [top insertString:addName atIndex:range.location];
    contentText.text = top;
    [top release];

当然最后还有把光标置为 添加过内容的后面,所以:

//  插入表情后 光标重新定位(延续方法二)

    NSUInteger length = range.location + [str length];
    contentText.selectedRange = NSMakeRange(length,0);

转载于:https://www.cnblogs.com/ericasun/p/4752762.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值