Какао NSTextField межстрочный интервал

Я борюсь с очень простой проблемой, у меня есть несколько NSTextField (я не могу использовать NSTextView прямо сейчас), и мне нужно изменить межстрочный интервал отображаемого текста. Что я могу сделать, чтобы уменьшить высоту строки или межстрочный интервал? Уменьшение размера шрифта не вариант.

Любая помощь могла бы быть полезна!

Хороших выходных,

!)

3 ответа

Для справки вы хотите прочитать это описание стилей абзацев: Стили абзацев Какао и заметьте, что все, что там есть, добавлено дополнительное пространство между строками, между абзацами, перед абзацами и т. Д. Вы можете установить значения в NSMutableParagraphStyle на ноль, но не ниже.

Чтобы еще больше сократить расстояние между строками, используйте setMaximumLineHeight, благодаря "6 1" для кода (я добавил setMaximumLineHeight):

NSString *title = @"title here";
NSFont *bold14 = [NSFont boldSystemFontOfSize:14.0];
NSColor *textColor = [NSColor redColor];
NSMutableParagraphStyle *textParagraph = [[NSMutableParagraphStyle alloc] init];
[textParagraph setLineSpacing:10.0];  // this sets the space BETWEEN lines to 10points
[textParagraph setMaximumLineHeight:12.0]; this sets the MAXIMUM height of the lines to 12points

NSDictionary *attrDic = [NSDictionary dictionaryWithObjectsAndKeys:bold14, NSFontAttributeName, textColor, NSForegroundColorAttributeName, textParagraph, NSParagraphStyleAttributeName, nil];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:title attributes:attrDic]; 
[self.titleField setAllowsEditingTextAttributes:YES];
[self.titleField setAttributedStringValue:attrString];

Свифт версия превосходного ответа Obj-c Джейсона Харрисона:

let title:String = "title here"
let bold14:NSFont = NSFont.boldSystemFontOfSize(14.0)
let textColor:NSColor = NSColor.redColor()
let textParagraph:NSMutableParagraphStyle = NSMutableParagraphStyle()
textParagraph.lineSpacing = 10.0  /*this sets the space BETWEEN lines to 10points*/
textParagraph.maximumLineHeight = 12.0/*this sets the MAXIMUM height of the lines to 12points*/
let attribs = [NSFontAttributeName:bold14,NSForegroundColorAttributeName:textColor,NSParagraphStyleAttributeName:textParagraph]
let attrString:NSAttributedString = NSAttributedString.init(string: title, attributes: attribs)
textField.attributedStringValue = attrString

Вы можете использовать NSAttributedString, чтобы показать текст.

NSFont *bold14 = [NSFont boldSystemFontOfSize:14.0];
NSColor *textColor = [NSColor redColor];
NSMutableParagraphStyle *textParagraph = [[NSMutableParagraphStyle alloc] init];
[textParagraph setLineSpacing:10.0];

NSDictionary *attrDic = [NSDictionary dictionaryWithObjectsAndKeys:bold14, NSFontAttributeName, textColor, NSForegroundColorAttributeName, textParagraph, NSParagraphStyleAttributeName, nil];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:title attributes:attrDic]; 
[self.titleField setAllowsEditingTextAttributes:YES];
[self.titleField setAttributedStringValue:attrString];

Это нормально для отображения текста не для ввода текста. И я знаю только, как установить межстрочный интервал.

Другие вопросы по тегам