如何让NSTextField的宽度调整到其内容?

时间:2013-09-27 12:38:30

标签: xcode cocoa interface-builder nstextfield

我与Xcode5合作。

我希望NSTextField的宽度能够适应其内容。

如果可能的话,我想在InterfaceBuilder中执行此操作,如果可能的话,不要进行子类化。

编辑: 我正在使用autolayout ON !! (这似乎阻止我改变我的NSTextField的宽度)

3 个答案:

答案 0 :(得分:3)

试试这样: - 将委托连接到您的文本域

-(void)controlTextDidChange:(NSNotification *)obj
{
    NSString *str=[yourTextField stringValue];
    NSCell *cell=[[NSCell alloc]initTextCell:str];
    CGFloat sz=[cell cellSize].width;
    [yourTextField setFrameSize:NSMakeSize(sz+10.0, 22.0)];
}

答案 1 :(得分:2)

NSTextField的文档中,没有任何内容表明NSTextField可以调整大小,具体取决于它的内容所以我认为这是不可能的,但对于踢腿和咯咯笑,我检查了故事板和除了自动调整大小掩码之外,没有允许NSTextField调整大小的属性,这与NSTextField文本属性无关。

答案 2 :(得分:1)

尝试设置NSTextfield的preferredMaxLayoutWidth,此值将用于更新您的高度,希望对您有所帮助。 和参考资源:UILabel sizeToFit doesn't work with autolayout ios6