如何使NSTextField适合NSMutableAttributedString包含
问题描述:
我有一个NSTextField我添加NSMutableAttributedString。我想将该字符串的大小设置为大数字,但是当我这样做时,文本会被截断。如何让NSTextField变得更大?如何使NSTextField适合NSMutableAttributedString包含
这是我有:
NSTextField* textField = [[NSTextField alloc] init];
NSMutableAttributedString* text = [[NSMutableAttributedString alloc]
initWithString:@"0"];
NSRange titleRange = NSMakeRange(0, [text length]);
[text addAttribute:NSFontAttributeName
value:[NSFont boldSystemFontOfSize:25]
range:titleRange];
[textField setAttributedStringValue:text];
有什么建议? 在此先感谢
答
制作的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];
}
在属性检查器设置故事板类的NSTextField里面你customNSTextField类和布局的变化,从滚动到包装。 您必须在其超级视图中将textField的约束添加到故事板中。直接
之后,你还可以设置字体大小:
[_textField setFont:[NSFont systemFontOfSize:25]];
+0
太棒了!这很好用 非常感谢! – RuLoViC
有U使用自动布局? – TechBee
我正在使用自动布局,是 – RuLoViC