【发布时间】:2010-09-06 17:47:13
【问题描述】:
我想以编程方式创建一个 NSTextView。如何确定正确的框架高度,以便视图以当前默认字体显示一行文本?
【问题讨论】:
我想以编程方式创建一个 NSTextView。如何确定正确的框架高度,以便视图以当前默认字体显示一行文本?
【问题讨论】:
NSFont 类有一个方法可以为您提供包含特定属性字符串的矩形大小。获取文本视图使用的字体,创建一个字符串作为文本视图中内容的合理示例,并使用它来通知框架高度。 (框架高度需要比显示字符串的实际矩形大一些点。)
或者,您可以从字体中获取各种指标,并尝试从中计算出合理的框架。这可能行也可能行不通;例如,像 Apple Chancery 这样的字体有大量的变化,这取决于正在呈现的字形、它们在单词中的位置等等;我不知道你可以在不知道你要渲染什么的情况下提前计算出所需的大小。
【讨论】:
在单行文本中使用 NSTextField 比使用 NSTextView 更正常。
使用 NSTextField,只需执行以下操作:
[textField setFont:myFont];
[textField sizeToFit];
哦,没有内置的“当前默认字体”。如果一个应用程序有这样的概念,它需要自己去跟踪它。字体面板不会读取或写入任何全局内容,它用于对特定文本对象进行操作。
【讨论】: