如何剪切文本直到它适合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:)
中。
https://developer.apple.com/documentation/uikit/nslinebreakmode