小编bon*_*ldi的帖子

如何以固定宽度获取NSAttributedString的高度

我想在固定宽度的框中绘制一些NSAttributedStrings,但是在计算绘制它们时会占用的正确高度时遇到问题.到目前为止,我已经尝试过:

  1. 调用- (NSSize) size,但结果是无用的(为此目的),因为他们会给出字符串所需的宽度.

  2. - (void)drawWithRect:(NSRect)rect options:(NSStringDrawingOptions)options使用矩形调用我想要的宽度和NSStringDrawingUsesLineFragmentOrigin选项,就像我在绘图中使用的那样.结果......难以理解; 当然不是我想要的.(正如许多地方所指出的,包括这个 Cocoa-Dev线程).

  3. 创建一个临时的NSTextView并执行: 当我查询tmpView的框架时,宽度仍然是所需的,并且高度通常是正确的......直到我得到更长的字符串,当它通常是所需尺寸的一半时.(似乎没有最大尺寸被击中:一帧将是273.0高(约300太短),另一帧将是478.0(只有60-ish太短)).
    [[tmpView textStorage] setAttributedString:aString];
    [tmpView setHorizontallyResizable:NO];
    [tmpView sizeToFit];

如果有人管理过这个,我会感激任何指点.

cocoa nstextview nsattributedstring appkit

48
推荐指数
4
解决办法
3万
查看次数

标签 统计

appkit ×1

cocoa ×1

nsattributedstring ×1

nstextview ×1