Xcode中字体大小与标签大小的关系

时间:2013-06-08 08:49:21

标签: ios xcode macos fonts nstextfield

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

如果我想以不同的字体大小显示文本(例如,从“Lucida Grande 13”到“Lucida Grande 40”),我以何种方式知道NSTextField矩形的大小只能适合文本指定的字体配置?

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

2 个答案:

答案 0 :(得分:1)

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

如果您选中here,就会找到

- (void)sizeToFit

  

调整接收器的帧大小,使其达到所需的最小大小   包含它的细胞。

答案 1 :(得分:1)

您可能会觉得这很有用:

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

它给出了适合给定文本的给定文本的矩形大小。你想要的是解决一个不同的变量:给定矩形大小和文本,找到适合的最大字体大小。您可以通过代码中的试错过程来完成此操作,例如:二元搜索。

但是,如果您在Interface Builder中设置帧大小,那对您没有帮助。最好的建议是,取消选中“调整以适应”,键入您希望在框中看到的最长文本,并增加字体大小,直到它看起来破碎。

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