附加到NSTextView并滚动

Dr.*_*eon 23 macos cocoa objective-c nstextview

好的,我需要的应该是非常简单的.然而,我到处寻找,我不确定我发现了100%有效的东西(这也是过去困扰我的东西).

所以,我们在这里:

  • 我希望能够追加NSTextView
  • 附加后,NSTextView应向下滚动(以便最新的附加内容可见)

相当直截了当,是吧?

所以...任何想法?(完全执行这个简单"技巧"的代码示例将非常理想......)

Dr.*_*eon 30

在交叉引用了几个答案和来源(通过一些调整)后,这里的答案确实有效(给出 _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)];
    });
}
Run Code Online (Sandbox Code Playgroud)


neo*_*eye 13

appendAttributedStringscrollToEndOfDocument可开始在OS X 10.010.6分别

extension NSTextView {
    func append(string: String) {
        self.textStorage?.appendAttributedString(NSAttributedString(string: string))
        self.scrollToEndOfDocument(nil)
    }
}
Run Code Online (Sandbox Code Playgroud)


Ano*_*dya 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)];
Run Code Online (Sandbox Code Playgroud)