Swift 如何剪切长文本,直到它适合NSTextView,并添加。。。在剪切文本的末尾?
如何剪切文本,直到它适合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 }
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的新手,我无法通过阅读文档了解如何使用它