我在窗口视图中有一个NSTextField。当用户调整窗口大小时,垂直调整NSTextField的大小
我已经尝试了所有IB选择,但我似乎无法实现以下目标:
有一个相当长的句子中的NSTextField - 当窗口调整为窄宽度的NSTextField也越走越窄 - 将文本推送到下一行。然而,任何被压入NSTextField底部的文本都会被截断。我希望NSTextField垂直扩展其大小以适应更高的文本。
这可以自动完成还是应该观察窗口大小调整事件并重新计算NSTextField的高度?
我需要支持10.7和10.8,我尝试过使用Autolayout和Autoresizing,但无济于事。
编辑 - 这是奋力基于杰里的回答(和他从GitHub类)的代码:在更高层次上
-(void)setFrame:(NSRect)frameRect{
NSRect myFrame = CGRectMake(frameRect.origin.x, frameRect.origin.y, frameRect.size.width, [self.stringValue heightForWidth:frameRect.size.width attributes:nil]);
[super setFrame: myFrame];
}
你可能会在这里找到一些有用的信息:http://stackoverflow.com/questions/10463680/how-to-let-nstextfield-grow-自动布局文本 – Monolo 2013-02-13 17:09:46
感谢Monolo - 实际上使用Jerry的类别与 - (NSSize)intrinsicContentSize相结合更好,因为我不需要明确设置框架,因此它可以按顺序保持Auto Layout。生活很好。 – petenelson 2013-02-15 12:17:37