好的,我需要的应该非常简单。但是,我到处寻找,我不确定我找到了100%有效的东西(这也是过去困扰我的东西)。
所以,我们在这里:
NSTextView
NSTextView
应向下滚动(以便最新添加的内容可见)相当直白,是吗?
所以...任何想法? (完全执行这个简单“技巧”的代码示例将非常理想......)
答案 0 :(得分:28)
在交叉引用几个答案和来源(通过一些调整)之后, 工作的答案(给定_myTextView
是NSTextView
出口):
- (void)appendToMyTextView:(NSString*)text
{
dispatch_async(dispatch_get_main_queue(), ^{
NSAttributedString* attr = [[NSAttributedString alloc] initWithString:text];
[[_myTextView textStorage] appendAttributedString:attr];
[_myTextView scrollRangeToVisible:NSMakeRange([[_myTextView string] length], 0)];
});
}
答案 1 :(得分:10)
答案 2 :(得分:5)
只需使用这种方式:
for (NSInteger i=1; i<=100; i++) {
[self.textView setString:[NSString stringWithFormat:@"%@\n%@",[self.textView string],@(i)]];
}
[self.textView scrollRangeToVisible:NSMakeRange([[self.textView string] length], 0)];
答案 3 :(得分:2)
这是Swo版本的Anoop Vaidya的回答
extension NSTextView {
func append(string: String) {
let oldString = self.string == nil ? "" : self.string!
let newString = NSString(format: "%@%@", oldString, string)
self.string = newString
}
}
答案 4 :(得分:-1)
这是一个Swifti er 解决方案:
extension NSTextView {
func appendString(string:String) {
self.string! += string
self.scrollRangeToVisible(NSRange(location:countElements(self.string!), length: 0))
}
}