我的主窗口中有一个 NSScrollView 项目。每当我启动程序时,滚动视图中都会有文本,它从中心开始。用户不应该从顶部开始阅读,但为什么应用程序会在中心启动它?谢谢!
问问题
163 次
1 回答
2
如果您没有正确设置视图,则可能会发生这种情况。
以下是我掌握的信息: 1:您使用 Interface Builder 来设置视图。
2:您正在使用 NSTextView
3:您用于更改文本的代码是:
[[_chapterContent insertText:[Book objectForKey:bookAndChapters]];
4:当您使用 NSTextView 时,我们不会处理由翻转坐标引起的问题。
我不确定您是否应该为此任务使用 insertText。至少,你可以使用这样的东西......
range.location = 0;
range.length = 0;
[textView setSelectedRange:range];
...设置插入符号的位置。
然后你可以做一个...
[textView scrollRangeToVisible:range];
...如果你喜欢。
注意:您可以使用长度为 0 和 [textStorage length] 内的任何位置的 setSelectedRange 来定位插入符号。
- 让我知道这是否会产生您需要的改变。
我建议使用...
textStorage = [textView textStorage];
range.location = 0;
range.length = [textStorage length];
if([self shouldChangeTextInRange:range replacementString:string])
{
[textStorage beginEditing];
[textStorage replaceCharactersInRange:range withAttributedString:attrStr];
[textStorage endEditing];
}
...用属性字符串替换文本。如果您不需要属性字符串,可以使用更简单的方法:
[textStorage replaceCharactersInRange:range withString:str];
多年来,它对我(和其他许多人)都很有效;这是更改 NSTextView 内容的推荐方法。- 如果你只想用字符串替换整个内容,你可以使用
[textView setString:string];
于 2013-02-16T10:59:02.870 回答