Программно сделать многострочную метку - PullRequest
7 голосов
/ 22 февраля 2012

Мне нужно программно сделать несколько надписей и текстовых полей.Я могу туда добраться.

    //create the file name label
    NSTextField* newFileNameLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(objXPos, objYPos, 300.0, 20.0)];
    //set properties
    [newFileNameLabel setBordered: NO];
    [newFileNameLabel setTextColor: [NSColor whiteColor]];
    [newFileNameLabel setDrawsBackground:NO];
    [newFileNameLabel setEditable:NO];
    [newFileNameLabel setStringValue: @"File Name:"];

    [vSheetView addSubview:newFileNameLabel];

Но я не смог найти в документах ничего, что позволило бы мне установить свойство переноса.В IB свойство - это макет с параметрами прокрутки, обтекания и усечения.NSTextField не имеет метода для установки этого, и если я иду вверх по цепочке наследования, ни NSControl.NSView имеет метод setNeedsLayout, но он, похоже, не связан:

You only ever need to invoke this method if your view implements custom layout 
not expressible in the constraint-based layout system by overriding the layout method. 
The system invokes this method automatically for all views using constraints for layout.

NSTextFieldCell также не имеет никаких методов.Любая помощь будет оценена.

Ответы [ 3 ]

8 голосов
/ 27 января 2016

В OS X 10.11 и Swift 2.1 мне помогло следующее:

multilineLabel.lineBreakMode = .ByWordWrapping
multilineLabel.setContentCompressionResistancePriority(250, forOrientation: .Horizontal)

Установка сопротивления сжатию требуется при использовании AutoLayout.

5 голосов
/ 10 марта 2016

Это работает для меня:

textField.usesSingleLineMode = false
textField.cell?.wraps = true
textField.cell?.scrollable = false
1 голос
/ 22 февраля 2012

Не проверено, но setWraps: из NSTextFieldCell (унаследовано от NSCell) должно делать то, что вам нужно.

Чтобы получить ячейку, отправьте метод cell в текстовое поле.NSTextField наследует метод cell от NSControl, поэтому, если вы хотите прочитать документы, вам нужно найти в документах NSControl.

Подробнее о том, как работают ячейки в NSCell docs .

...