macOS NSTextField,NSStackView,NSScrollView Как добиться переноса текста в прокручиваемый список?

Новичок в разработке macOS и попытка создать некоторые очень простые макеты, однако я изо всех сил пытаюсь добавить NSTextFields в NSStackView, расположенный в NSScrollView, до сих пор я написал следующее, однако, похоже, он ограничивает текст одной строкой, изменяя размер размер окна....Изображение

@IBOutlet weak var sv: NSStackView!

let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    sv.autoresizesSubviews = true
    for i in 0..<10{
        var test = NSTextField(string: lorem)
        test.isEditable = false
        test.isBordered = false
        test.translatesAutoresizingMaskIntoConstraints = false
        test.usesSingleLineMode = false
        test.lineBreakMode = .byCharWrapping
        test.wantsLayer = true
        test.layer?.cornerRadius = 5

        sv.addView(test, in: .top)

    }}

person EM77    schedule 25.03.2020    source источник


Ответы (1)


Использование NSTextField(string:) в качестве инициализатора замораживает поле как одну строку. Вместо этого попробуйте этот удобный инициализатор:

let test = NSTextField(wrappingLabelWithString: lorem)

…и не беспокойтесь о .isEditable, .translatesAutoresizingMaskIntoConstraints или .usesSingleLineMode.

person Loengard    schedule 27.03.2020