代码之家  ›  专栏  ›  技术社区  ›  Barry Wark

NSTextView的一行高度?

  •  2
  • Barry Wark  · 技术社区  · 17 年前

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

    2 回复  |  直到 17 年前
        1
  •  4
  •   Chris Hanson    17 年前

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

    或者,您可以从字体中获取各种度量,并尝试从中计算合理的帧。这可能有效,也可能无效;例如,像Apple Chancery这样的字体有很大的变化,这取决于正在渲染的字形,它们在单词中的位置,等等;我不知道你可以提前计算出需要的大小,而不知道你要渲染什么。

        2
  •  2
  •   Ken    17 年前

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

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

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