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
视图的外部插座随时可能变为零。小心;并且考虑在两个窗口之间创建一种不同的交叉连接,也许使用一个知道两个窗口控制器的委托。