Какао NSTextField межстрочный интервал - PullRequest
5 голосов
/ 02 декабря 2011

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

Любая помощь будет очень признательна!

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

!)

Ответы [ 3 ]

3 голосов
/ 12 мая 2014

Для справки вы хотите прочитать это описание стилей абзаца: Стили абзаца какао и учтите, что все, что там есть, добавлено дополнительное пространство между строками, между абзацами, перед абзацами и т. Д. Вы можете установить значения в вашем 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];
3 голосов
/ 17 августа 2016

Swift версия превосходного ответа Джейсона Харрисона на 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
2 голосов
/ 25 июня 2012

вы можете использовать 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];

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

...