首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使NSStackView截断最右边的NSTextField

如何使NSStackView截断最右边的NSTextField
EN

Stack Overflow用户
提问于 2017-03-27 16:40:36
回答 1查看 509关注 0票数 2

我的UI中有一行,由固定大小的字符串(FS)、固定大小的映像和可变大小的字符串(VS)组成。我需要这一行在其superview中居中,如果它不再适用,可能会截断VS。就像启用截断的简单居中NSTextField一样。但是NSTextField不能持有NSImage AFAIK。

我认为NSStackView应该能够做到这一点。我已经设置它的中心在它的超级视图,并有一个NSTextField,NSImage和NSTextField在里面。但是当我将VS设置为非常长的东西时,FS和VS都被推出了superview的界限并被剪裁。

有没有一种方法可以告诉NSStackView永远不要将FS移出superview边界,而是截断VS?或者还有什么其他的技术来达到我的目标?

到目前为止,我已经尝试过:

  1. 使用NSStackView并将VS的compressionResistance设置为499。
  2. 使用NSTextView -无法使它截断文本和适合于单行。似乎也太过分了
  3. 使用NSView -它要求我设置x位置,所以它不是正确的居中。

我可以使用NSView并计算字符串的大小,并修改约束来完成这项工作。但我认为一定有更好的方法。

谢谢你的建议,

J.

EN

回答 1

Stack Overflow用户

发布于 2017-03-27 18:34:16

听起来好像您还没有将堆栈视图限制在它的容器中。除了中心化约束之外,您还需要将其前导设置为大于或等于superview的前导,将其尾部设置为小于或等于其superview的尾部。

FS和图像视图的压缩电阻应该高于VS的压缩电阻,甚至可以用来防止这两者被压缩。

堆栈视图的水平裁剪电阻应高于VS的压缩电阻。按要求留着就行了。你希望VS被压缩而不是被剪裁。

VS的压缩阻力实际上应该取决于视图层次结构和约束的其余部分。它大概应该小于490 (NSLayoutPriorityDragThatCannotResizeWindow),这样它就不会强迫窗口调整大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43051961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档