NSTextView仅在当前滚动到底部时才滚动到底部吗?

时间:2018-09-16 17:57:31

标签: swift macos nstextview

我试图弄清楚如何滚动到底部,并且仅在滚动位置在底部时才滚动到底部,例如XCODE。

我不知道如何获取NSTextView的当前滚动位置。

使用以下命令滚动到底部很简单:

self.tbLog.scrollToEndOfDocument(nil)

但是每次都会发生这种情况,如果您向上滚动到日志文件的顶部并添加了新行,则它会回到底部。如果滚动位置在底部,我只想放到底部。

解决方案

// Add your text to the NSTextView here... then...
print("Position: \(NSMaxY(self.tbLog.visibleRect) - NSMaxY(self.tbLog.bounds))")
if (NSMaxY(self.tbLog.visibleRect) - NSMaxY(self.tbLog.bounds) == 0.0) { 
     print("we're at the bottom, keep at the bottom.")
     self.tbLog.scrollToEndOfDocument(nil)
} else {
     print("we're scrolled up somewhere... do nothing.")
}

0 个答案:

没有答案