自动滚动到NSTextView的末尾

时间:2013-05-08 23:50:44

标签: objective-c macos cocoa nstextview

我有一个NSTextView,我在其上添加控制台日志。我已在XIB文件中使用滚动视图实现了此UI。当我的应用程序在文本视图中附加控制台日志时,我希望滚动条自动转到textview的末尾。我在XIB编辑器中找不到任何属性。任何想法我怎么能实现这个目标?

@property(nonatomic, strong) IBOutlet NSTextView *logTextView;

    [[self.logTextView textStorage] beginEditing];
    [[[self.logTextView textStorage] mutableString] appendString:iData];
    [[[self.logTextView textStorage] mutableString] appendString:@"\n"];
    [[self.logTextView textStorage] endEditing];

1 个答案:

答案 0 :(得分:1)

您可以在追加字符串后使用-[NSText scrollRangeToVisible:]来实现目标。 (NSTextViewNSText的子类。)

抱歉,但这是唯一的方法。正如您所观察到的,没有IB复选框会影响这种特殊行为。

无效,您可以通过一次-[NSMutableString appendString:]电话取代两个-[NSMutableString appendFormat:]来电。