objective-c – Cocoa Autolayout和子视图的大小调整

objective-c – Cocoa Autolayout和子视图的大小调整,第1张

概述我正在使用Autolayout让我的子视图正确调整大小时遇到​​麻烦.为了说明我的观点,我将一个简约的例子放在一起. 首先,我创建了一个新的NSViewController,并为其添加了一个子视图(在这种特殊情况下为NSTextView),并添加了Autolayout约束. 然后我为我的MainMenu.xib添加了一个自定义视图,并为此设置了Autolayout约束. 最后,我创建了一个视图控制 我正在使用autolayout让我的子视图正确调整大小时遇到​​麻烦.为了说明我的观点,我将一个简约的例子放在一起.

首先,我创建了一个新的NSVIEwController,并为其添加了一个子视图(在这种特殊情况下为NSTextVIEw),并添加了autolayout约束.

然后我为我的MainMenu.xib添加了一个自定义视图,并为此设置了autolayout约束.

最后,我创建了一个视图控制器的实例,并将其视图放在我的自定义视图中.

#import "AppDelegate.h"#import "MyVIEwController.h"@interface AppDelegate()@property (weak) IBOutlet NSVIEw *customVIEw;@end@implementation AppDelegate- (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification{    MyVIEwController *myVIEwController = [[MyVIEwController alloc] initWithNibname:@"MyVIEwController" bundle:nil];    [self.customVIEw addSubvIEw:myVIEwController.vIEw];    myVIEwController.vIEw.frame = self.customVIEw.bounds;}@end

由于在两个xib文件中都选中了“自动调整子视图”,因此我希望在调整主窗口大小时调整NSTextVIEw的大小.但是,它只是留在原地.

我在这里错过了什么?这让我困惑了好几天了.

谢谢,
迈克尔克努森

解决方法 您的NSTextVIEw包含视图对其父级没有任何约束,在本例中是您的窗口.您添加的视图未调整大小,因为您的视图未通过约束“连接”到其父级.如果要以编程方式执行此 *** 作,可能需要调查addConstraint:方法.

有关更多信息,请参见Apple’s docs.

总结

以上是内存溢出为你收集整理的objective-c – Cocoa Autolayout和子视图的大小调整全部内容,希望文章能够帮你解决objective-c – Cocoa Autolayout和子视图的大小调整所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1015297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存