在 Xcode 中将标签拖入 .xib 文件时,我注意到两个“大小”:标签文本的字体大小和 NSTextField 实例本身的大小。
如果我想以不同的字体大小显示文本(例如,从“Lucida Grande 13”到“Lucida Grande 40”),我可以通过什么方式知道 NSTextField 矩形的大小可以恰好适合指定字体配置中的文本?
此外,iOS 和 OS X 编程的方式有什么不同吗?
在 Xcode 中将标签拖入 .xib 文件时,我注意到两个“大小”:标签文本的字体大小和 NSTextField 实例本身的大小。
如果我想以不同的字体大小显示文本(例如,从“Lucida Grande 13”到“Lucida Grande 40”),我可以通过什么方式知道 NSTextField 矩形的大小可以恰好适合指定字体配置中的文本?
此外,iOS 和 OS X 编程的方式有什么不同吗?
您可能会发现这很有用:
NSString *longName = @"Subrahmanyan Chandrasekhar";
CGSize size = [longName sizeWithFont:label.font];
这给出了恰好适合给定字体和给定文本的矩形大小。您想要解决一个不同的变量:给定矩形大小和文本,找到适合的最大字体大小。您可以通过代码中的试错过程来做到这一点,例如二进制搜索。
但是,如果您在 Interface Builder 中设置帧大小,这并不能真正帮助您。最好的建议是,取消选中“调整以适应”,输入您希望在框中看到的最长文本,并增加字体大小直到它看起来损坏。
是的,OSX 不同。显然sizeWithFont:
在 OSX 上不存在。