Выравнивание строк в NSFont / NSView
Он, когда я рисую текст в моем представлении так:
NSMutableDictionary *textAttrib = [[NSMutableDictionary alloc] init];
[textAttrib setObject:[NSFont fontWithName:@"Helvetica Light" size:15] forKey:NSFontAttributeName];
[textAttrib setObject:[NSColor grayColor] forKey:NSForegroundColorAttributeName];
[mouseString drawAtPoint:textPoint withAttributes:textAttrib];
как я могу изменить выравнивание текста? Мне просто нужно простое выравнивание влево / вправо, и я не могу найти информацию об этом, только в текстовых полях. Спасибо!
2 ответа
Нет такой концепции выравнивания с [NSString drawAtPoint:withAttributes:]
метод, и это имеет смысл, если вы думаете об этом. Выравнивание - это концепция появления строки относительно содержимого элемента управления (обычно NSTextField
).
Вы могли бы, однако, попробовать [NSString drawInRect:withAttributes:]
где эта концепция существует. Смотри этот ТАК вопрос.
ОБНОВЛЕНИЕ: Этот вопрос не является полным без (теперь удаленного) ответа, данного @justin, который показывает, как установить выравнивание текста в NSAttributedString
, Оба ответа верны, но ни один не полон.
Вам не хватает атрибута: NSParagraphStyleAttributeName, который является атрибутом NSParagraphStyle. Если вы создадите объект NSParagraphStyle, вы можете установить это свойство:
@property(readonly) NSTextAlignment alignment; // readwrite for NSMutableParagraphStyle
В вашем случае вы должны установить его в NSTextAlignmentLeft или NSTextAlignmentRight.
Пример:
NSMutableParagraphStyle* style=[[NSMutableParagraphStyle alloc]init];
style.alignment= NSTextAlignmentLeft;
[textAttrib setObject: style forKey: NSParagraphStyleAttributeName];