我想以编程方式创建一个NSTextView。 如何确定正确的框架高度,以使视图以当前默认字体显示一行文本?

===============>>#1 票数:4 已采纳

NSFont类具有一个可以为您提供矩形大小的方法,该矩形将包围特定的属性字符串。 获取您的文本视图所使用的字体,创建一个字符串,作为该文本视图中内容的合理示例,然后使用该字符串来通知您的框架高度。 (帧高度必须比显示字符串的实际矩形大一些点。)

或者,您可以从字体中获取各种指标,然后尝试从中计算出合理的框架。 那可能行不通; 例如,Apple Chancery之类的字体根据要渲染的字形,它们在单词中的位置等的不同而有很大的不同。 我不知道您不知道要渲染的内容就可以预先计算所需的大小。

===============>>#2 票数:2

对于单行文本,使用NSTextField比使用NSTextView更为正常。

使用NSTextField,只需执行以下操作:

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

哦,没有内置的“当前默认字体”。 如果应用程序具有这样的概念,则它需要自己对其进行跟踪。 字体面板不读取或写入全局任何东西,它用于对特定的文本对象进行操作。

  ask by Barry Wark translate from so

未解决问题?本站智能推荐: