代码之家  ›  专栏  ›  技术社区  ›  Andrew M

截断NSTextView?

  •  5
  • Andrew M  · 技术社区  · 14 年前

    我尝试使用defaultParagraphStyle,但似乎无法使用NSTextView(以编程方式添加)来用省略号(…)截断文本。

    我在initWithFrame(150,20)期间设置帧,还设置了maxSize(150,20)。然而,文本只是溢出。如果我设置半行可见的高度,我可以看到文本的上半部分,但是我希望看到用省略号截断的文本。

    我该怎么做?

    3 回复  |  直到 14 年前
        1
  •  17
  •   Nicholas Riley    14 年前

    如果您将鼠标悬停在IB中相应的控件上,您可以看到它所触发的方法的声明和简要文档(通常是getter而不是setter,但是很容易从另一个中推断出一个)。例如,对于“换行”弹出窗口,您将看到 lineBreakMode 方法。然后您可以使用您最喜欢的方法在Xcode中找到它(例如“快速打开”)。

    所以你想要的是:

    [[someTextField cell] setLineBreakMode:NSLineBreakByTruncatingTail];
    

    或潜在的:

    [[someTextField cell] setLineBreakMode:NSLineBreakByCharWrapping];
    [[someTextField cell] setTruncatesLastVisibleLine:YES];
    
        2
  •  12
  •   Stephan    12 年前

    尼古拉斯写的是对的。

    我喜欢添加(因为我花了一些时间搜索)如果您使用自动布局 NSTextView 和周围 NSView 你应该把你的 内容压缩阻力优先级 NSTextView 小于 NSLayoutPriorityWindowSizeStayPut (例如499)。 否则,NSTextView将不会截断其内容。

        3
  •  -2
  •   kupsand    11 年前

    另一个标题可能是:

    如何阻止NSTextField在其内容比窗口长时调整窗口大小!

    把尼古拉斯和斯蒂芬的答案结合起来,对我有帮助。

    我把

    [[someTextField cell] setLineBreakMode:NSLineBreakByTruncatingTail];
    

    在里面

    - (void)windowDidLoad
    

    或者,对于那些喜欢使用界面生成器的人

    使用Stephan的解决方案并将NSTextField的布局更改为截断。另外,检查一下换行符是什么-截短尾部可以满足我的需要。