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

Swift 如何剪切长文本,直到它适合NSTextView,并添加。。。在剪切文本的末尾?,swift,macos,nstextview,Swift,Macos,Nstextview,如何剪切文本,直到它适合NSTextView?直到合适为止。然后再加上。。。在这段文字的结尾 以下是我的组件: import PureLayout class Card: NSCollectionViewItem { let textView = NSTextView() var card: (text: String)? { didSet { guard isViewLoaded else { return }

如何剪切文本,直到它适合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()
    }
}
以下是输入文本的示例:

以下是它被剪切后在NSTextView中的外观:


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


问题是针对macOS的。UIKit是用于iOS的。@adev正确。您可以在MacOS上使用
NSTextContainer
NSLineBreakMode
。您的评论是正确的,但您的答案仍然有指向
UIKit
的文档。我不确定这与这个问题有什么关系。你可能应该在回答中加上评论。只是说。@adev这是swift url,appkit版本显示objc。。如果你能告诉我你将使用的url,我会更改它,@Fabian,你能举个例子说明如何使用它吗?我是swift的新手,我无法通过阅读文档了解如何使用它