【问题标题】:Scroll an NSTextView to bottom after adding text添加文本后将 NSTextView 滚动到底部
【发布时间】:2017-10-18 02:51:27
【问题描述】:

我想向 NSTextView 添加文本并将其滚动到底部,就像在 Xcode 控制台中完成的那样。在 swift 4 中最好的方法是什么?我查看了其他答案,但它们不是在 swift 中,或者在转换为 swift 时不能完美地工作。

这是为 OS X 应用程序而不是 iOS 应用程序编写的,这就是我询问 NSTextView 的原因。

要添加文本,我只是使用此代码self.logTextView.string += "\nnew text" 这允许文本也可以放在新行上。如果有更好的方法来做到这一点,很想听听。

这是我已经尝试过的: Scrolling NSTextView to bottom

【问题讨论】:

    标签: swift macos cocoa swift4 nstextview


    【解决方案1】:

    NSTextView 有一个确切的操作:scrollToEndOfDocument(_ sender: Any?)。

    所以,我想下面的代码就足够了。

    self.logTextView.string += "\nnew text"
    self.logTextView.scrollToEndOfDocument(nil)
    

    【讨论】:

    • 我已经尝试过了,当我看到 textView 时它运行良好。但是我的 textView 在滚动视图中,当将日志添加到 textview 并且 textview 在滚动视图中不可见时,它不起作用。你知道这可能是什么原因吗?基本上,日志文本视图位于底部,添加到日志的按钮位于顶部。当我滚动到底部时,文本视图不会使用代码“scrollToEndOfDocument”滚动到底部
    • 你的NSTextView不就是包装器NSScrollView的documentView吗?或者你有嵌套的 NSScrollViews?基本上,NSTextViews 应该始终用作 NSScrollView 的 documentView。
    • 我是一名 iOS 开发人员,所以我不熟悉 OS X 开发的细微差别。我基本上只是拖动了一个滚动视图,然后在其中放置了一个 NSTextView。
    • 如果你使用Storyboard或xib,你拖入NSScrollView的NSTextView,也可能有自己的NSScrollView包裹它。因此,要显示 textView 的底线,您需要滚动两个 scrollView。
    猜你喜欢
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2015-07-24
    • 2012-06-13
    • 1970-01-01
    • 2018-03-17
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多