【问题标题】:Custom view from NSWindowController Cocoa来自 NSWindowController Cocoa 的自定义视图
【发布时间】:2018-05-22 03:10:12
【问题描述】:

我有一个有两个窗口的应用程序,主窗口打开第二个窗口,它是 NSWindowController,在它的 xib 文件中有一个 custom view,有什么方法可以在这个 custom view 中绘制NSWindowController?

谢谢

【问题讨论】:

  • "来自 NSWindowController 的自定义视图" 你说的不合逻辑。
  • @ElTomato 我必须通过 NSWindowcrontroller 访问 nsview 方法,这就是我所需要的,但是 NSview 已经初始化,所以我不能使用 NSview *view = [[NSView alloc] init]

标签: objective-c cocoa custom-view nswindowcontroller


【解决方案1】:

在您的自定义 NSView 中覆盖 - (void) drawRect:(NSRect) dirtyRect 以进行绘图。

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

【讨论】:

【解决方案2】:

已解决,我已经声明了两个IBOutlets,一个在NSView

IBOutlet MyNSWindowController *wc;

还有一个NSWindowController:

IBOutlet MyNSView *view;

然后,我必须将它们连接到custom view

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

【讨论】:

  • 请注意,原则上创建从一个窗口A 到另一个窗口B 的视图并不是一个好主意——它们应该存在、移动和释放独立的,他们会的。因此,B 的视图的国外出口可以随时由于窗口A 控制之外的原因变为 nil。当心;并考虑在两个窗口之间创建不同类型的交叉连接,也许使用一个知道两个窗口控制器的委托。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多