NSAttributedString / NSTextTab Проблема выравнивания - PullRequest
2 голосов
/ 11 сентября 2011

ЗАДАЧА:

Я пытаюсь использовать NSAttributedStrings (в сочетании с NSTextTabs) для создания следующего макета:

[ Title           # ]  <-- Useable in NSTableViews, NSMenuItems, etc.
[ Another Title   # ]
[ T3              # ]

РЕШЕННОЕ РЕШЕНИЕ:

Код, который я пытаюсь использовать:

NSMutableParagraphStyle *tabStyle = [[NSMutableParagraphStyle alloc] init];
[tabStyle setTabStops: [NSArray array]];
[tabStyle addTabStop: [[NSTextTab alloc] initWithType: NSRightTabStopType location: 200.0]];
[attrString appendAttributedString: [[NSMutableAttributedString alloc] initWithString: @"\t"]];
[attrString addAttribute: NSParagraphStyleAttributeName value: tabStyle range: NSMakeRange(0, [attrString length])];
[attrString appendAttributedString: [[NSMutableAttributedString alloc] initWithString: @"1"]];

Где attrString - это NSMutableAttributeString, в данный момент установленный в «Заголовок».

Однако, используя этот код (который, как я предполагаю, даст желаемый результат), выдает следующее:

Screenshot - NSTextTabs

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Когда я удаляю ссылки на NSTextTabs, вот так:

[attrString appendAttributedString: [[NSMutableAttributedString alloc] initWithString: @"\t"]];
[attrString appendAttributedString: [[NSMutableAttributedString alloc] initWithString: @"1"]];

Я получаю ожидаемый результат неравномерного табуляции.

Screenshot - No NSTexTabs

НИЖНЯЯ ЛИНИЯ:

Почему NSAttributedString, по-видимому, игнорирует NSParagraphStyle / NSTextTabs?

Что я могу сделать, чтобы это исправить?

1 Ответ

2 голосов
/ 12 сентября 2011

Обнаружил проблему, создав NSTextView в IB и поместив в него строку AttributedString.

enter image description here

Очевидно, что компоновка должна быть "Scrolls" (было "Truncates")) для получения желаемого эффекта.

...