我在AppDelegate中创建了一个窗口,然后在使用newContentView执行任何操作时将内容视图设置为NSView子类“CutoutView”,例如从CutoutView获取方法效果很好。
// Configure contentView in AppDelegate
newContentView = [[CutoutView alloc]initWithFrame:window.frame];
[window setContentView:newContentView];
现在我有另一个名为MoveFilter的NSView子类,我希望能够从我的CutoutView调用方法。问题是为了做到这一点,我必须再次分配和初始化CutoutView方法,当我这样做时,可以调用方法但是没有显示,因为CutoutView之前已经是alloc和init。
// in MoveFilter
cutOutView = [[CutoutView alloc]init];
[cutOutView someMethod];
我需要添加什么来移动MoveFilter或者我能看到什么来帮助我调用它们将像newContentView一样显示的方法?对不起,我是新来的,谢谢!
答案 0 :(得分:2)
从应用代理中获取现有的CutoutView
:
CutoutView * cv = [[NSApp delegate] newContentView];
(假设你有一个属性 - 看起来你把它放入ivar。)
或从窗口开始:
// in MoveFilter
CutoutView * cv = [[self window] contentView];
(假设MoveFilter
和CutoutView
在同一窗口中。)
或者,如果这些假设都不成立,您可以组合这两个过程并获取应用程序委托窗口的内容视图。我会把它作为锻炼给你。