gpt4 book ai didi

ios - UITextView setSelectedRange 更改可编辑属性

转载 作者:行者123 更新时间:2023-11-29 05:05:39 25 4
gpt4 key购买 nike

从一开始,我的可编辑属性为 true 的 UITextView 就不可编辑(通过 NIB 中的设置)。该行为使得用户可以选择和复制文本,但不能编辑。事情应该是这样的。

但是,如果我调用 setSelectedRange,副作用是可编辑属性设置为 YES。

将其设置回 NO [textview setEditable:NO] 滚动到 textView 的底部并撤消我的编程选择。它也不起作用,因为无论如何都会启用编辑。键盘出现了,一切都出现了。

我需要能够以编程方式选择某些内容,并将 textView 保持在用户只能复制和选择文本的状态。

[textView select:self];
[textView setSelectedRange:selectedText];

我卡住了。寻找您可以提供的任何建议。

这不起作用:

[textView select:self];
[textView setSelectedRange:selectedText];
[textView setEditable:NO];

我还尝试将委托(delegate)函数 textViewShouldBeginEditing 设置为返回 NO:

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
return NO;
}

这只会锁定所有内容,我无法选择任何文本。

最佳答案

我意识到这个问题已经得到解答,但这是我为保留弹出菜单所做的改进,只需禁用某些选项即可;

-(BOOL) canPerformAction:(SEL)action withSender:(id)sender {
bool response = [super canPerformAction:action withSender:sender];
if(response && (action == @selector(cut:) || action == @selector(paste:) || action == @selector(delete:) || action == @selector(_promptForReplace:))) {
return NO;
}
return response;
}

canPerformAction 根据定义的操作调用。调用父方法将处理大多数情况,但我还决定禁用剪切、粘贴、删除和拼写建议 (_promptForReplace)。

关于ios - UITextView setSelectedRange 更改可编辑属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384072/

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