可可 – NSString sizeWithAttributes:content rect

前端之家收集整理的这篇文章主要介绍了可可 – NSString sizeWithAttributes:content rect前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何获得NSString的大小,就像它在一个NSRect中一样.问题是当我尝试 – [NSString sizeWithAttributes:],它返回一个NSSize,就好像它有无限宽度.我想给方法最大的宽度.有什么办法吗(BTW:Mac OS,而不是iPhone操作系统)

谢谢,
亚历克斯

解决方法

  1. float heightForStringDrawing(NSString *myString,NSFont *myFont,float myWidth)
  2. {
  3. NSTextStorage *textStorage = [[[NSTextStorage alloc] initWithString:myString] autorelease];
  4. NSTextContainer *textContainer = [[[NSTextContainer alloc] initWithContainerSize:NSMakeSize(myWidth,FLT_MAX)] autorelease];
  5. ;
  6. NSLayoutManager *layoutManager = [[[NSLayoutManager alloc] init] autorelease];
  7. [layoutManager addTextContainer:textContainer];
  8. [textStorage addLayoutManager:layoutManager];
  9. [textStorage addAttribute:NSFontAttributeName value:myFont
  10. range:NSMakeRange(0,[textStorage length])];
  11. [textContainer setLineFragmentPadding:0.0];
  12.  
  13. (void) [layoutManager glyphRangeForTextContainer:textContainer];
  14. return [layoutManager
  15. usedRectForTextContainer:textContainer].size.height;
  16. }

毕竟这是文件.谢谢约书亚!

猜你在找的iOS相关文章