【问题标题】:NSAttributedString / NSTextTab Alignment IssueNSAttributedString / NSTextTab 对齐问题
【发布时间】:2011-11-14 21:26:28
【问题描述】:

目标:

我正在尝试使用 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,当前设置为“标题”。

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

更多信息:

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

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

我得到了不均匀制表符的预期输出。

底线:

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

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

【问题讨论】:

    标签: cocoa text formatting spacing nsattributedstring


    【解决方案1】:

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

    显然,布局需要“滚动”(原为“截断”)才能产生所需的效果。

    【讨论】:

    • 谢谢!一直在为这个而烦恼!
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多