【问题标题】:How to have unlimited tab stops in a NSTextView with disabled text wrap如何在禁用文本换行的 NSTextView 中设置无限制表位
【发布时间】:2011-02-16 00:53:16
【问题描述】:

网上有几个地方(包括 stackoverflow)指出如何禁用 NSTextView 对象上的文本换行。该方法有效,但制表位存在问题。似乎默认是 12 个制表位,使用超过 12 个将开始换行。显而易见的解决方案是更改默认的 NSParagraphStyle 以便它有更多的制表位,但我认为这不是正确的方法。理想情况下,我希望有“无限”数量的制表位,例如 xcode。

有没有直接的方法来实现这一点?

【问题讨论】:

    标签: cocoa


    【解决方案1】:

    此代码将创建一个具有 1/2 英寸制表符间隔的新段落样式,并将其设置为变量 textView 上的默认和当前段落样式。

    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
    [style setDefaultTabInterval:36.];
    [style setTabStops:[NSArray array]];
    [textView setDefaultParagraphStyle:style];
    [textView setTypingAttributes:[NSDictionary dictionaryWithObject:style forKey:NSParagraphStyleAttributeName]];
    [style release];
    

    【讨论】:

    • 我在 nstextview 的子类中添加了建议的代码(当然通过 self 更改 textView )。我仍然只得到 12 个制表位,每站 4 个字符(我使用等宽字体,摩纳哥)。
    • 你能把它贴上上下文吗?我从我的一个项目中复制了这段代码,对我来说效果很好。
    • 我成功了。问题是我在文本视图中以编程方式创建内容,添加 NSAttributedString 对象。我只是将您建议的样式放入属性字符串中,一切正常。谢谢。
    • 如果它回答了您的问题,您应该标记为“已接受的答案”。
    • 我试过这个。在 OS X 10.8.5 上使用 Xcode 5 对我不起作用。没有以编程方式添加文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多