问题描述
- iOS 中关于 UITextView 的光标问题
-
#哈哈# 比如这是 UITextView 中最开始的一段文字,要达到这种效果,不能让光标进入 #哈哈# 这段文字中,只能在其后面开始输入
解决方案
我感觉可以在点击开始时重新赋给他那些文字,这样光标可能会在后面,因为这样已经算是填入了
解决方案二:
每次初始化光标的时候,向后偏移几个字节可以实现么?
解决方案三:
textView.selectedRange = NSRangeMake(textVew.text.length, 0);
解决方案四:
首先要捕获光标移动的事件,第二件事就是强制改变光标的位置。楼上的方法就可以改变光标的位置。至于如何捕获光标发生移动的事件楼主看看头文件,有没有相应的代理事件
解决方案五:
你主要的问题在于不知道怎么移动光标吧?
这个问题可以这样做,就像其他人所说的那样:
1.设置代理
2.关键方法:
- (void)textViewDidChangeSelection:(UITextView *)textView
3.关键属性
textView的selectedRange
当range的length为0时,就是单个光标;
4.示例
这个是textView的text:#这是个主题#呵呵呵呵
这个是代理实现: - (void)textViewDidChangeSelection:(UITextView *)textView{
if(textView.selectedRange.location > 左边#的坐标 && textView.selectedRange.location < 右边#的坐标)//在##之间的区域
{
textView.selectedRange = NSMakeRange(右边#的坐标,0);
}
}
解决方案六:
你主要的问题在于不知道怎么移动光标吧?
这个问题可以这样做,就像其他人所说的那样:
1.设置代理
2.关键方法:
-(void)textViewDidChangeSelection:(UITextView *)textView
3.关键属性 textView的selectedRange 当range的length为0时,就是单个光标;
4.示例 这个是textView的text:#这是个主题#呵呵呵呵 这个是代理实现:
-(void)textViewDidChangeSelection:(UITextView *)textView
{
if(在##之间的区域)
{
textView.selectedRange = NSMakeRange(右边#的坐标,0);
}
}
sh*t 用不好 格式乱了 重新来一遍
解决方案七:
其实你的效果是隐藏用户的表情符号。只需要记录nsrange,然后不要显示字符串在其中,回头再拼接。或者你写个工具类,双向转换,将图标与特殊字符互换。总之你让用户看到图标之外的东西不太好
解决方案八:
你可以这样啊 每次 输入的时候自动加上#哈哈# textview。text=@“#哈哈#”+你输入的