3

我正在使用 Text Kit 在我的应用程序中布局一些自定义文本,并且我想创建漂亮的列表,并使用正确对齐的枚举器。我需要文本看起来像这样:

所需的枚举样式

粉线不是想要的效果的一部分,而是强调枚举数应该如何对齐(即它们需要右对齐,但左边的文本仍然应该左对齐)。

我已经实现了这个要求的列表样式(枚举器目前是左对齐的)。为此,我将枚举数添加为字符串,其后带有一个制表符 ( \t),并在所需位置添加一个自定义制表位 ( NSTextTab) 到NSParagraphStyle. headIndent通过将 设置为与 相同的位置来缩进后续行NSTextTab

关于如何根据需要对齐枚举器的任何想法?

4

1 回答 1

4

弄清楚了。原来我可以用NSTextTabs 做到这一点,如下所示:

NSString *enumerator = @"\t\u2022\t"; // Bullet symbol

NSMutableParagraphStyle *enumeratorParagraphStyle = [paragraphStyle mutableCopy];
NSTextTab *enumeratorTabStop = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentRight
                                                               location:eMarkdownRendererIndentationPoints
                                                                options:nil];
NSTextTab *contentTabStop = [[NSTextTab alloc] initWithTextAlignment:NSTextAlignmentLeft
                                                            location:contentLocation
                                                             options:nil];

enumeratorParagraphStyle.tabStops = @[enumeratorTabStop, contentTabStop];
[textStorage appendAttributedString:[[NSAttributedString alloc] initWithString:enumerator
                                                                    attributes:@{NSParagraphStyleAttributeName: enumeratorParagraphStyle}]];
于 2014-05-05T20:53:18.163 回答