如何剪切长文本直到适合NSTextView,并在剪切文本的末尾添加...?

时间:2018-09-15 15:19:30

标签: swift macos nstextview

如何剪切文本直到适合NSTextView?恰好适合。然后在此剪切文本的末尾添加...吗?

这是我的组成部分:

import PureLayout

class Card: NSCollectionViewItem {
    let textView = NSTextView()

    var card: (text: String)? {
        didSet {
            guard isViewLoaded else { return }

            if let text = card?.text {
                textView.string = text
            } else {
                textView.string = ""
            }
        }
    }

    func configureTextView() {
        textView.font = NSFont(name: "SF Pro Display", size: 12)
        textView.isEditable = false
        textView.isFieldEditor = false

        textView.autoPinEdge(toSuperviewEdge: .top, withInset: 10)
        textView.autoPinEdge(toSuperviewEdge: .right, withInset: 10)
        textView.autoPinEdge(toSuperviewEdge: .bottom, withInset: 10)
        textView.autoPinEdge(toSuperviewEdge: .left, withInset: 10)
    }

    override func viewDidAppear() {
        super.viewDidAppear()

        view.layer?.borderWidth = 1
        view.layer?.borderColor = .black

        view.addSubview(textView)

        configureTextView()
    }
}

以下是输入文字的示例:

enter image description here

这是剪切后在NSTextView中的外观:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用textView.textContainer!.lineBreakMode = .byTruncatingTail。为此,您可能需要将NSTextView的文本容器放入init(frame:textContainer:)中。

https://developer.apple.com/documentation/uikit/nslinebreakmode