Macos NSTextField上奇怪的字体行为

Macos NSTextField上奇怪的字体行为,macos,cocoa,nsview,nstextfield,Macos,Cocoa,Nsview,Nstextfield,我以编程方式将NSTextField添加到我的NSView中: NSTextField *projectLabel = [[NSTextField alloc] initWithFrame:frame]; [projectLabel setStringValue:@"projectName"]; [projectLabel setBezeled:NO]; [projectLabel setDrawsBackground:NO]; [projectLabel setEditable:NO]; [p

我以编程方式将NSTextField添加到我的NSView中:

NSTextField *projectLabel = [[NSTextField alloc] initWithFrame:frame];
[projectLabel setStringValue:@"projectName"];
[projectLabel setBezeled:NO];
[projectLabel setDrawsBackground:NO];
[projectLabel setEditable:NO];
[projectLabel setSelectable:NO];

[projectLabel setFont:[NSFont controlContentFontOfSize:13]];
projectLabel.autoresizingMask = NSViewMaxXMargin | NSViewMinYMargin; 

[self addSubview:projectLabel];
[self setAutoresizesSubviews:NO];
此字段添加正确,但当我更改视图大小(甚至将窗口移动到第二个显示)时,字段上的字体会发生非常奇怪的变化(请参见附件)

开始时
改变尺寸后
我不知道我做错了什么

每次尺寸改变时,我都在drawRect上画这个标签

那么,您是在手动告诉字段显示在其父视图的
drawRect:


不要那样做。它是一个子视图,因此它将被告知在其轮到的时候进行绘制。就让它发生吧。

这并没有帮助,但是你应该通过0.0来获得默认大小的控件内容字体。更相关的是:字体根本没有改变。文本字段是双重打击文本:多次绘制文本,每次都在之前的文本之上。你完全正确,每次大小改变时,我都在drawRect上绘制此标签。理论上我知道这一点。但有时我会犯愚蠢的错误:)谢谢你的建议。@TomaszWojtkowiak我也面临同样的问题,你能告诉我如何解决这个问题吗?@SawanCool-答案在Peter Hosey的答案中。我刚刚从drawRect中移出了NSTextField的创建: