的iOS:追加的不可编辑的字符串一个UITextView的端(iOS: Appending an u

2019-09-16 15:59发布

我想重现类似于iOS的Facebook的“更新状态”视图的画面。

(本文应为可编辑)散步(任何过去这里不应该是编辑) - 在南海滩纳拉宾

用户应该能够输入/编辑文本的附加字符串的左边。 附加字符串需要其父项内包装和点击。

有谁知道如何做到这一点? (我最近看到它在Viddy应用以及)。

难道是用UIAttributedString分两行以上,更新它的框架越来越多的UITextField如输入的文本?

Answer 1:

更新:它看起来像你想要的是让用户发生在签名光标反正,但不能让她式
在这种情况下,你想使用它代替

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
   NSInteger signatureLength=20;
   if(range.location>self.textView.text.length-signatureLength){
       return false;
   }
   else{
       return true;
   }
}

原版的:

您需要使用UITextViewDelegate

实施 - (空)textViewDidChangeSelection:(UITextView的*)TextView的方法,是这样的:

在这个例子中,我们假设签名长度为20,这将是这个样子:

-(void)textViewDidChangeSelection:(UITextView *)textView{
       NSInteger signatureLength=20;
       NSRange newSelection=self.textView.selectedRange;
       if(newSelection.location>self.textView.text.length-signatureLength){
           [self.textView setSelectedRange:NSMakeRange(self.textView.text.length-signatureLength, 0)];
       }
 }

所以基本上你截取每次选择(==光标在这种情况下)的变化,如果光标将是在签名的中间,你之前重新定位。 设置的选择用0长度只是改变光标位置。



文章来源: iOS: Appending an uneditable string to the end of a UITextView