Мне нужно скопировать всплывающее окно просмотра тегов, которое имеет искатель. [Вид тега Finder] https://i.stack.imgur.com/QCufn.png,, но с разницей, представление тегов должно быть внутри прокрутки с целью разрешения только 5 видимых теги
Я начал с NSTextView, но когда я добавляю кнопку в textView, текст всегда находится за тегами, то есть теги покрывают написанный текст. https://i.stack.imgur.com/eeJWy.png
Как я могу сделать что-то похожее на Finder?
Спасибо
EDIT
Я пытаюсь с NSTokenField, но что-то пошло не так, потому что просмотр прокрутки не прокручивается: https://i.stack.imgur.com/sweDN.png
Это мой код:
class SearchTagView:NSScrollView {
lazy var tokenizer: NSTokenField = {
let tokenizer = NSTokenField(string: "")
tokenizer.isEnabled = true
tokenizer.isSelectable = true
tokenizer.isEditable = true
tokenizer.tokenStyle = NSTokenField.TokenStyle.squared
tokenizer.font = NSFont(name: FontList.montserrat(weight: .medium).value, size: 13)
tokenizer.textColor = .red
tokenizer.cell?.image = nil
tokenizer.cell?.wraps = true
tokenizer.cell?.isScrollable = false
tokenizer.usesSingleLineMode = false
tokenizer.autoresizingMask = [.width, .height]
return tokenizer
}()
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
translatesAutoresizingMaskIntoConstraints = false
addSubview(tokenizer)
tokenizer.translatesAutoresizingMaskIntoConstraints = false
tokenizer.pinToSuperView()
}
override func viewDidMoveToSuperview() {
super.viewDidMoveToSuperview()
documentView = tokenizer
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
* *} Тысяча двадцать-один
Примечание:
Вид прокрутки прикреплен к суперпредставлению в начале, в конце и сверху, и имеет высоту между 35 и 75 с ограничениями:
NSLayoutConstraint.activate([
searchTagView.topAnchor.constraint(equalTo: contentView.topAnchor),
searchTagView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
searchTagView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
searchTagView.heightAnchor.constraint(greaterThanOrEqualToConstant:35),
searchTagView.heightAnchor.constraint(lessThanOrEqualToConstant:70),
])