2

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

4

2 回答 2

4

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

或者,您可以从字体中获取各种指标,并尝试从中计算出合理的框架。这可能会也可能不会奏效;例如,像 Apple Chancery 这样的字体会根据正在渲染的字形、它们在单词中的位置等而有大量的变化;我不知道您是否可以在不确切知道要渲染的内容的情况下提前计算出所需的大小。

于 2008-08-25T05:00:04.977 回答
2

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

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

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

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

于 2008-09-18T07:20:55.217 回答