Я пишу процедуру в swift (Xcode 11.6), которая преобразует текст в формате rtf в структурированный формат под macOS.
Для ввода простого текста я пытаюсь определить текстовое поле, которое является прокручиваются в предупреждающем сообщении и настроили следующую процедуру. К сожалению, предупреждающее сообщение имеет правильный размер, но не отображает текстовое поле «исходный текст». Это сработает, если я определю "исходный текст" как NSTextView (_ frame :) и добавлю его вместо scrollView в качестве вспомогательного элемента к сообщению с предупреждением, но тогда, конечно, его нельзя прокрутить.
Что я делаю не так? Большое спасибо за вашу поддержку
private func readNewText() {
let abfrageNeuerText = NSAlert()
abfrageNeuerText.alertStyle = .informational
abfrageNeuerText.messageText = "Input new text"
abfrageNeuerText.informativeText = ""
abfrageNeuerText.addButton(withTitle: "Convert")
abfrageNeuerText.addButton(withTitle: "Cancel")
let scrollView = NSScrollView(frame: NSRect(x:10, y:10, width: 500, height: 700))
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.borderType = .noBorder
scrollView.backgroundColor = NSColor.white
scrollView.hasVerticalScroller = true
// Initial clip view
let clipView = NSClipView()
clipView.translatesAutoresizingMaskIntoConstraints = false
scrollView.contentView = clipView
scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .left, relatedBy: .equal, toItem: scrollView, attribute: .left, multiplier: 1.0, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .top, relatedBy: .equal, toItem: scrollView, attribute: .top, multiplier: 1.0, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .right, relatedBy: .equal, toItem: scrollView, attribute: .right, multiplier: 1.0, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .bottom, relatedBy: .equal, toItem: scrollView, attribute: .bottom, multiplier: 1.0, constant: 0))
// Initial document view
let originaltext = NSTextView()
originaltext.translatesAutoresizingMaskIntoConstraints = false
scrollView.documentView = originaltext
clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .left, relatedBy: .equal, toItem: originaltext, attribute: .left, multiplier: 1.0, constant: 0))
clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .top, relatedBy: .equal, toItem: originaltext, attribute: .top, multiplier: 1.0, constant: 0))
clipView.addConstraint(NSLayoutConstraint(item: clipView, attribute: .right, relatedBy: .equal, toItem: originaltext, attribute: .right, multiplier: 1.0, constant: 0))
abfrageNeuerText.accessoryView = scrollView
let response = abfrageNeuerText.runModal()
switch response {
case .alertFirstButtonReturn:
if originaltext.string.count == 0 {
return
}
analyzeNewtext(forText: originaltext.string)
default: return
}
}