Objective c 截断NSTextView?

Objective c 截断NSTextView?,objective-c,macos,nstextview,Objective C,Macos,Nstextview,我尝试使用defaultParagraphStyle,但似乎无法获得一个NSTextView(以编程方式添加)来截断带有省略号(…)的文本 我在initWithFrame(150,20)期间设置了帧,并且还设置了maxSize(150,20)。然而,文本只是溢出。如果我设置了半行可见的高度,我可以看到文本的上半部分,但是我希望看到文本被省略号截断 如何实现这一点?如果将鼠标悬停在IB中相应的控件上,您可以看到它触发的方法的声明和简要文档(通常是getter而不是setter,但很容易从另一个中推

我尝试使用defaultParagraphStyle,但似乎无法获得一个NSTextView(以编程方式添加)来截断带有省略号(…)的文本

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


如何实现这一点?

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

所以你想要的是:

[[someTextField cell] setLineBreakMode:NSLineBreakByTruncatingTail];
或者可能:

[[someTextField cell] setLineBreakMode:NSLineBreakByCharWrapping];
[[someTextField cell] setTruncatesLastVisibleLine:YES];

尼古拉斯写的是正确的

我想补充一点(因为我花了一些时间搜索它),如果您对
NSTextView
和周围的
NSView
使用自动布局,您应该将
NSTextView
内容抗压缩优先级设置为小于(例如499)。
否则,您的NSTextView将不会截断其内容。

另一个标题可能是:

当NSTextField的内容比窗口长时,如何阻止其调整窗口大小

结合尼古拉斯和斯蒂芬的答案对我有帮助

我把

[[someTextField cell] setLineBreakMode:NSLineBreakByTruncatingTail];
…在

- (void)windowDidLoad
或者,对于那些喜欢使用界面生成器的用户


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

单行NSTextView?我不明白。您不是在寻找NSTextField吗?是的,因为我似乎找不到一种方法以编程方式将标签添加到视图中(搜索似乎表明这是不可能的…)。但是,正如我在问题中提到的那样,如何以编程方式添加标签?不可能吗?呵呵?“label”是什么意思?从IB可以执行的任何操作都可以从代码执行……我正在搜索NSLabel,而label控件实际上是一个NSTextField。将鼠标悬停在上方可以工作。谢谢,这为我做到了。不推荐使用cell,因此现在应该是
[someTextField setLineBreakMode:nslinebreakbytruncingtail]