gpt4 book ai didi

iOS:将不可编辑的字符串附加到 UITextView 的末尾

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:15:56 25 4
gpt4 key购买 nike

我想在 iOS 中重现类似于 Facebook“更新状态” View 的屏幕。

enter image description here enter image description here

(此文本应该是可编辑的)步行(任何经过此处的内容都不应是可编辑的)- 在南纳拉宾海滩

用户应该能够在附加字符串的左侧输入/编辑文本。附加的字符串需要包裹在其父项中并且可以点击。

有人知道这是怎么做到的吗? (我最近也在 Viddy 应用程序中看到了它)。

它会不会是一个不断增长的 UITextField,其 UIAttributedString 分为 2 行,在输入文本时更新其框架?

最佳答案

更新:看起来你想要的是让用户将光标放在签名中,但不让她键入
在这种情况下,您会想改用它

- (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

实现 - (void)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:将不可编辑的字符串附加到 UITextView 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10263919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com