我有一个多行NSTextField
,我需要设置它的字体大小,以便当它的内容很短时,它只显示在一个字体很大的行上,
但是当它的内容较长时,它会分成两行并缩小其字体大小,以便内容保持在其范围内。
我查看了Get NSTextField contents to scale中提供的解决方案,但它不适用于多行字段。
答案 0 :(得分:5)
我使用这种方法来更改多行标签的字体大小。基本上,如果字符串的长度太长,则减小字体大小以使其适合标签区域。希望这会有所帮助。
if ([theText length] > 64) {
[label setFont:[NSFont systemFontOfSize:10]];
} else {
[label setFont:[NSFont systemFontOfSize:13]];
}
theText
是NSString,label
是我的多行标签,我希望文本显示给用户。标签的尺寸是固定尺寸。
答案 1 :(得分:1)
NSTextField中没有动态字体的原生解决方案。你必须建立自己的算法。
编辑:
这可能不太难。您可能只需要对其进行子类化,然后执行一个方法(在伪代码中):
if(text.length > someValue)
self.fontSize = 17
else if (text.length < someValue)
self.fontSize = 14
else
self.fontSize = 12
如果有人知道第三方开源代码以优雅地执行此操作,那就让我们等一下