Objective c 大小更改时NSScrollView中NSTextField的位置错误

Objective c 大小更改时NSScrollView中NSTextField的位置错误,objective-c,cocoa,nsscrollview,Objective C,Cocoa,Nsscrollview,我有一个从IB创建的简单NSScrollView。 我从我的.h文件链接了它,该文件是一个IBOutlet: 在my.m中,我以编程方式插入一个NSTextField,如下所示: NSTextField *dateTextField = [[NSTextField alloc]initWithFrame:NSMakeRect(30,yPos - kBreakHeight - 15, 100, kBreakHeight)]; [dateTextField setBordered:NO]; [dat

我有一个从IB创建的简单NSScrollView。 我从我的.h文件链接了它,该文件是一个IBOutlet:

在my.m中,我以编程方式插入一个NSTextField,如下所示:

NSTextField *dateTextField = [[NSTextField alloc]initWithFrame:NSMakeRect(30,yPos - kBreakHeight - 15, 100, kBreakHeight)];
[dateTextField setBordered:NO];
[dateTextField setEditable:NO];
[dateTextField setBackgroundColor:[NSColor clearColor]];
[dateTextField setAlignment:NSLeftTextAlignment];
[dateTextField setFont:[NSFont fontWithName:kAppFontBold size:11]];
[dateTextField setTextColor:[NSColor colorWithCalibratedRed:33/255.0 green:33/255.0 blue:33/255.0 alpha:1]];
[dateTextField setStringValue:dateString];
[[scroller documentView] addSubview:dateTextField];
不幸的是,在我的视图的第一次午餐中,文本字段不是在正确的位置,而是documentView中的其他元素是,并且只有在调整窗口大小时,该位置才是正确的


你知道如何在发布时找到正确的位置吗?

你没有说明你的目标是哪个版本的OS X,如果它是Lion,你是使用auto layout还是传统的springs and struts

如果使用springs和struts自动调整大小遮罩,则应在添加文本字段之前或之后,在文本字段上设置一个框架

如果使用自动布局,则必须在添加字段后添加适当的约束。哦,请记住在添加文本字段之前,将其translatesAutoResizengMaskintoConstraints属性设置为NO,否则它将添加自己的约束,从而干扰您添加的约束。根据我的经验,添加自己的显式约束比依赖自动生成的约束要好得多

这里有一些关于布局约束的好文档:

去年的WWDC会话确实有助于理解它需要密码:


你不需要说明你的目标是哪个版本的OSX,如果它是Lion,你是使用AutoLayout还是传统的springs和struts

如果使用springs和struts自动调整大小遮罩,则应在添加文本字段之前或之后,在文本字段上设置一个框架

如果使用自动布局,则必须在添加字段后添加适当的约束。哦,请记住在添加文本字段之前,将其translatesAutoResizengMaskintoConstraints属性设置为NO,否则它将添加自己的约束,从而干扰您添加的约束。根据我的经验,添加自己的显式约束比依赖自动生成的约束要好得多

这里有一些关于布局约束的好文档:

去年的WWDC会话确实有助于理解它需要密码:


我找到了解决方案,只需添加…:

[dateTextField setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable | NSViewMaxXMargin | NSViewMaxYMargin | NSViewMinXMargin | NSViewMinYMargin];

我找到了解决方案,只需添加…:

[dateTextField setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable | NSViewMaxXMargin | NSViewMaxYMargin | NSViewMinXMargin | NSViewMinYMargin];

不幸的是,我没有使用自动布局属性。。。其他视图的位置是否正确?是因为它来自IB组件吗?关于信息,我正在为Lion版本工作。不幸的是,我没有使用自动布局属性。。。其他视图的位置是否正确?是因为它来自IB组件吗?关于信息,我正在为狮子发布工作。