2008-08-25 55 views

回答

4

NSFont類有一個方法,可以給你一個矩形的大小,將包圍一個特定的屬性字符串。獲取文本視圖使用的字體,創建一個字符串,作爲文本視圖中的內容的合理示例,並用它來通知幀高度。 (框架高度將需要比字符串顯示的實際矩形大一些的點數)。

或者,您可以從字體中獲取各種指標,並嘗試從中計算合理的框架。這可能會或可能不會工作;例如,像Apple Chancery這樣的字體根據呈現的字形,單詞中的字形等而具有大量的變化;我不知道你可以提前計算出所需的大小,而不知道你要渲染什麼。

2

對於單行文本,使用NSTextField比使用NSTextView更加正常。

用的NSTextField,只需做到以下幾點:

[textField setFont:myFont]; 
[textField sizeToFit]; 

哦,而且沒有內置的「當前默認字體」。如果一個應用程序有這樣的概念,它需要自己跟蹤它。字體面板不讀取或寫入全局任何東西,它用於對特定文本對象進行操作。

+0

有系統字體,這可能是他的意思。 – 2009-09-17 15:57:20