【问题标题】:(Mac) Changing the window of an NSWindowController to a subclass of NSWindow(Mac) 将 NSWindowController 的窗口更改为 NSWindow 的子类
【发布时间】:2013-10-26 22:38:30
【问题描述】:

我正在使用带有 IB 的 NIB,它在初始化时由我的 NSWindowController 子类解压缩到 NSWindow 中(正常)。 [NSWindowController* window] 给了我控制器的窗口。

现在,我想让我的窗口控制器的窗口属于一个不同的类,该类是它的子类。具体来说,我想重写其中的一种方法,sendEvent。这行不通,不是我想的那样:

self.window = ((WebViewEventKillingWindow*) self.window);

WebViewEventKillingWindow 是禁用用户交互的子类(感谢 Bob,在此处找到 Disable a WebKit WebView)。我怀疑这甚至可以在没有不同方法的情况下完成,但我对此很陌生。

【问题讨论】:

    标签: macos cocoa subclass nswindow nswindowcontroller


    【解决方案1】:

    在 Interface Builder 中选择您的窗口,并确保属性检查器已打开。

    该面板中的第一个选项是“自定义类” - 在其中输入 NSWindow 子类的名称:

    【讨论】:

    • 完美。我知道这个功能,但没有想到在这种情况下使用它。我必须做的另一件事是将窗口连接到控制器中的新插座(弱引用),因为默认窗口插座是 NSWindow。
    • 既然你知道它是你的子类,那么你在访问它的时候也只是强制转换了默认出口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多