【问题标题】:Relationship between Font size and Label size in XcodeXcode中字体大小和标签大小的关系
【发布时间】:2013-06-08 08:49:21
【问题描述】:

在 Xcode 中将标签拖入 .xib 文件时,我注意到两个“大小”:标签文本的字体大小和 NSTextField 实例本身的大小。

如果我想以不同的字体大小显示文本(例如,从“Lucida Grande 13”到“Lucida Grande 40”),我可以通过什么方式知道 NSTextField 矩形的大小可以恰好适合文本指定字体配置?

此外,iOS 和 OS X 编程的方式有什么不同吗?

【问题讨论】:

    标签: ios xcode macos fonts nstextfield


    【解决方案1】:

    您可能会发现这很有用:

    NSString *longName = @"Subrahmanyan Chandrasekhar";
    CGSize size = [longName sizeWithFont:label.font];
    

    这给出了恰好适合给定字体和给定文本的矩形大小。你想要解决一个不同的变量:给定矩形大小和文本,找到适合的最大字体大小。您可以通过代码中的反复试验过程来做到这一点,例如二分查找。

    不过,如果您在 Interface Builder 中设置框架大小,这并不能真正帮助您。最好的建议是,取消选中“调整以适应”,输入您希望在框中看到的最长文本,并增加字体大小直到看起来损坏。

    是的,OSX 不同。显然sizeWithFont: 在 OSX 上不存在。

    【讨论】:

    【解决方案2】:

    NSTextField 是一个继承自NSControl 的控件。

    如果你检查here,你会发现

    - (void)sizeToFit.

    调整接收器帧的大小,使其成为所需的最小尺寸 包含它的单元格。

    【讨论】:

    • 哦,NSControl!我一直在寻找 NSTextField 因此我没有找到这个。顺便说一句,有没有什么方法可以得到最小尺寸而不调整标签的大小?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 2014-10-28
    • 2020-05-17
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多