首页 > 解决方案 > NSTextView 水平滚动将滚动到行号视图

问题描述

当我在文本视图中启用水平滚动时,内容在垂直标尺视图上方滚动。理想情况下,它不应与行号视图重叠。

这是它的外观

文字过度滚动


为了实现水平滚动,我在 NSTextView 上写了一个扩展

public extension NSTextView {
    func wrapText(_ isWrapped: Bool) {
        guard let scrollView = enclosingScrollView else { return }
        scrollView.hasHorizontalScroller = !isWrapped
        isHorizontallyResizable = !isWrapped
        let width = isWrapped ? Int(scrollView.contentSize.width) : Int.max
        maxSize = NSSize(width: width, height: Int.max)
        textContainer?.size = NSSize(width: width, height: Int.max)
        textContainer?.widthTracksTextView = isWrapped
    }
}

textView.enclosingScrollView!.hasVerticalRuler = true

标签: cocoaappkitnstextviewnsscrollview

解决方案


推荐阅读