繁体   English   中英

NSTextView的高度只有一行?

[英]Height of NSTextView with one line?

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM