我试图根据当前宽度自动调整文本字段/视图的大小。换句话说,我希望宽度保持不变,但根据提供给它的文本调整高度。NSString boundingRectWithSize稍微低估了正确的高度 - 为什么?
它似乎正在工作,但出于某种原因,尽管努力手动将其移回,我的窗口的底部对齐。任何人都可以看到我在这里做错了吗?
NSString *temp = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer vel felis nec massa ultricies blandit non id arcu. Sed enim est, facilisis a feugiat in, consectetur eget arcu. Aenean rutrum, lacus id euismod congue, nisl erat vulputate lectus, non faucibus tortor purus sed sem. Donec tempor dui egestas velit auctor vitae faucibus diam facilisis. Morbi convallis nulla quis est pulvinar quis ultricies sem sollicitudin.";
myText.stringValue = temp;
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
[NSFont systemFontOfSize:12], NSFontAttributeName,
[NSParagraphStyle defaultParagraphStyle], NSParagraphStyleAttributeName,
nil];
NSSize size = NSMakeSize(window.frame.size.width, 200);
myText.frame = [temp boundingRectWithSize:size options:NSLineBreakByWordWrapping | NSStringDrawingUsesLineFragmentOrigin attributes:attributes];
编辑:即使手动移动很明显,文本还是会被切断框架。新调整的大小不是那里。
这是参照: NSString boundingRectWithSize slightly underestimating the correct width - why? 和 NSTextView or NSTextField automatically resize bounds/frame?
也许从200改变高度的东西的方式大,使得框架大小知道垂直增长。 – rein
@rein我一直在玩,尽管它实际上重新调整了新框架的底部仍然剪裁文本的大小。新的框架不够大。查看更新的问题以获取新的屏幕截图。 –