【问题标题】:Accessing parent view when adding subview添加子视图时访问父视图
【发布时间】:2011-12-05 06:02:51
【问题描述】:

我有一个 ViewController,里面有 2 个不同大小的 NSView。我想将自定义 ViewController 的视图作为子视图添加到这两个 NSView 中,并使其动态大小以填充(2个父视图)。我可以在主布局的实现文件中很好地完成这一点,但它有很多代码。我想让我的自定义 ViewController 完成所有工作。为此,我需要知道要添加自定义视图的视图的高度和宽度。有一个 parentViewController 属性,但它没有为我做任何事情。有没有办法引用正在添加视图的视图?

在我的自定义 ViewController viewDidLoad 方法中,我希望能够拥有

[self.view setFrame:CGRectMake(0, 0, 
    self.parentViewController.view.frame.size.width, 
    self.parentViewController.view.frame.size.height)];

但是这里的高度和宽度都是零。

我已经研究了几个小时的文档,但我仍然感到困惑。任何帮助将不胜感激。

【问题讨论】:

    标签: ios nsview nsviewcontroller


    【解决方案1】:

    应该首先设置 parentViewController 属性。如果未设置,它将为零。您没有指定它是否设置正确。不过,有一种更简单的方法可以做到这一点,假设您的视图的超级视图设置正确。试试这个:

    [self.view setFrame:self.superview.frame];
    

    如果您需要更改其中的某些内容,或者从超级视图的框架中制作矩形。

    【讨论】:

    • 我会在自定义视图控制器的 viewDidLoad 方法中设置 parentViewController 吗?也感谢您的提示!
    • 如果您在任何全局变量中维护对它的引用或从任何其他方法获取它,则可以这样做。我会说你应该在分配和初始化自定义视图控制器时设置它
    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多