Objective c 来自NSWindowController的自定义视图

Objective c 来自NSWindowController的自定义视图,objective-c,cocoa,custom-view,nswindowcontroller,Objective C,Cocoa,Custom View,Nswindowcontroller,我有一个带有两个窗口的应用程序,主窗口打开第二个窗口,它是一个NSWindowController,在它的xib文件中有一个自定义视图,有没有办法从NSWindowController中绘制此自定义视图 感谢您在自定义NSView中重写-(void)drawRect:(NSRect)dirtyRect,以进行绘图 如果需要从(自定义)NSWindowController通知此drawRect方法,可以通过设置从视图到NSWindowController的出口来使用委托或数据源模式。解决了,我声明

我有一个带有两个窗口的应用程序,主窗口打开第二个窗口,它是一个
NSWindowController
,在它的
xib
文件中有一个
自定义视图
,有没有办法从
NSWindowController
中绘制此
自定义视图

感谢您在自定义NSView中重写
-(void)drawRect:(NSRect)dirtyRect
,以进行绘图


如果需要从(自定义)NSWindowController通知此drawRect方法,可以通过设置从视图到NSWindowController的出口来使用委托或数据源模式。

解决了,我声明了两个
IBOutlets
,一个在
NSView
上:

IBOutlet MyNSWindowController *wc;
还有一个在
NSWindowController
上:

IBOutlet MyNSView *view;
然后,我必须将它们连接到
自定义视图


现在我可以使用它的方法,只需调用它的
IBOutlets

“来自NSWindowController的自定义视图”您所说的是不合逻辑的。@ElTomato我必须通过NSWindowcrontroller访问nsview方法,这就是我所需要的,但是nsview已经是init,所以我不能使用nsview*view=[[nsview alloc]init]这不是一个例子,但这个问题讨论了这两种方法——请注意,原则上,从一个窗口
a
到另一个窗口
B
的视图创建一个出口不是一个好主意——它们应该独立存在、移动和释放,并且它们将独立存在、移动和释放。因此,由于窗口
A
控制之外的原因,
B
视图的外部插座随时可能变为零。小心;并且考虑在两个窗口之间创建一种不同的交叉连接,也许使用一个知道两个窗口控制器的委托。