[英]Modifying an NSTextField's font size according to content length
我有一個多行的NSTextField
,我需要設置它的字體大小,以便當它的內容很短時,它只顯示在一個大字體大小的行上,
但是當它的內容較長時,它會分成兩行並縮小其字體大小,以便內容保持在其范圍內。
我查看了Get NSTextField contents to scale中提供的解決方案,但它不適用於多行字段。
我使用這種方法來更改多行 label 的字體大小。 基本上,如果字符串的長度太長,則減小字體大小以使其適合 label 區域。 希望這可以幫助。
if ([theText length] > 64) {
[label setFont:[NSFont systemFontOfSize:10]];
} else {
[label setFont:[NSFont systemFontOfSize:13]];
}
其中theText
是一個 NSString 並且label
是我的多行 label 我希望將文本顯示給用戶。 label 的尺寸是固定尺寸。
NSTextField 中沒有動態字體的原生解決方案。 你必須建立自己的算法。
編輯:
可能不會太難。 您可能只需要對其進行子類化,然后執行一個方法(在偽代碼中):
if(text.length > someValue)
self.fontSize = 17
else if (text.length < someValue)
self.fontSize = 14
else
self.fontSize = 12
讓我們等待是否有人知道第三方開源代碼可以優雅地做到這一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.