我有一个NSTextField,我在其中添加了NSMutableAttributedString。我想将该字符串的大小设置为大数字,但是当我这样做时,文本显示为切断。怎么能告诉NSTextField变得更大?
这就是我所拥有的:
1000000 => f4240
1000001 => f4241
1000002 => f4242
1000003 => f4243
1000004 => f4244
1000005 => f4245
1000006 => f4246
1000007 => f4247
1000008 => f4248
1000009 => f4249
1000010 => f424a
1000011 => f424b
1000012 => f424c
1000013 => f424d
1000014 => f424e
1000015 => f424f
1000016 => f4250
1000017 => f4251
1000018 => f4252
1000019 => f4253
1000020 => f4254
有什么建议吗? 提前致谢
答案 0 :(得分:1)
创建NSTextField的子类
在实现中,请覆盖intrinsicContentSize
-(NSSize)intrinsicContentSize
{
if ( ![self.cell wraps] ) {
return [super intrinsicContentSize];
}
NSRect frame = [self frame];
CGFloat width = frame.size.width;
frame.size.height = CGFLOAT_MAX;
CGFloat height = [self.cell cellSizeForBounds: frame].height;
return NSMakeSize(width, height);
}
// Than invalidate the layout when text changes
- (void)textDidChange:(NSNotification *)notification
{
[super textDidChange:notification];
[self invalidateIntrinsicContentSize];
}
在属性Inspector里面的storyboard中,将NSTextField类设置为customNSTextField类,并将布局更改为从滚动包装。 您必须在textboard中为textField添加约束,在故事板中更容易。
之后,您还可以直接设置字体大小:
[_textField setFont:[NSFont systemFontOfSize:25]];
答案 1 :(得分:0)
[textField sizeToFit];
但是使用自动布局通常是个更好的主意。