macOS NSTextField, NSStackView, NSScrollView Как получить свернутый текст в прокручиваемом списке? - PullRequest
0 голосов
/ 25 марта 2020

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

@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)

    }}

1 Ответ

1 голос
/ 27 марта 2020

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

let test = NSTextField(wrappingLabelWithString: lorem)

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

...