我试图弄清楚如何滚动到底部,并且仅在滚动位置在底部时才滚动到底部,例如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.")
}