簡體   English   中英

根據內容長度修改 NSTextField 的字體大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM