0

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

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

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

4

2 回答 2

1

您可能会发现这很有用:

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

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

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

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

于 2013-06-08T14:48:15.367 回答
1

NSTextField是一个继承自 的控件NSControl

如果你检查这里,你会发现

- (void)sizeToFit.

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

于 2013-06-08T08:56:26.720 回答