2

目标:

我正在尝试使用 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"]];

NSMutableAttributeString在哪里attrString,当前设置为“标题”。

但是,使用此代码(我假设会产生所需的输出)会产生以下结果:

截图 - NSTextTabs

更多的信息:

当我删除对 NSTextTabs 的引用时,如下所示:

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

我得到了不均匀标签的预期输出。

截图 - 没有 NSTextTabs

底线:

为什么 NSAttributedString 似乎忽略了 NSParagraphStyle/NSTextTabs?

我能做些什么来解决这个问题?

4

1 回答 1

2

通过在 IB 中创建一个 NSTextView 并将 AttributedString 放入其中,找到了问题。

在此处输入图像描述

显然,布局需要是“滚动”(是“截断”)才能产生预期的效果。

于 2011-09-12T02:01:08.813 回答