【问题标题】:Updating the width of NSTextField based on length of string根据字符串长度更新 NSTextField 的宽度
【发布时间】:2012-12-08 00:15:49
【问题描述】:

我想制作一个标签,它可以根据要显示的字符串值的大小来改变它的大小。目前我正在这样做:

[tfScroll setStringValue:strScoller];
[tfScroll sizeToFit];

但是这不起作用。我错过了什么?

【问题讨论】:

  • sizeToFit 不是您所需要的。只需获取文本的长度并更改 textField 的宽度即可。
  • 什么不起作用?该字段是否没有改变大小或其他视图没有重新排列它?或者是其他东西? sizeToFit 确实会调整标签的大小以适应其内容,但仅此而已。您的两行代码应该调整标签的大小。快速目视检查是给标签一个背景色,你会看到标签覆盖的区域。
  • Cocoa Auto Layout 提供了自动执行此类操作的方法。
  • @noa : 你能解释一下吗?
  • 看看自动布局教程。 WWDC 2012 的介绍视频非常有帮助。

标签: objective-c xcode macos cocoa nstextfield


【解决方案1】:

如果您尝试调整字段的高度,这可能有效:

CGRect frame = tfScroll.frame;
frame.size.height = tfScroll.contentSize.height;
tfScroll.frame = frame;

【讨论】:

    【解决方案2】:

    如果你的 tfScroll 是 NSTextField:

    CGRect frame = tfScroll.frame;
    frame.size.width = tfScroll.attributedStringValue.size.width+somepoints;//(somepoints=8)
    tfScroll.frame = frame;
    

    我没有找到 NSTextfield.contentSize。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 2016-07-08
      • 2017-06-13
      • 2019-06-08
      • 1970-01-01
      • 2017-07-18
      相关资源
      最近更新 更多