【发布时间】:2013-09-21 11:35:30
【问题描述】:
我正在使用一个非常复杂的 NSWindow 自定义子类,称为MyWindow。现在我想创建一个名为MyPanel 的新类,它具有与NSPanel 相同的行为,但它继承自MyWindow,因为它是超类。我已经阅读了official docs 的NSPanel,但它没有说明如何从自定义 NSWindow 子类制作面板。我当前的代码:
MyPanel.h
#import "MyWindow.h"
@interface MyPanel : MyWindow
- (BOOL)isFloatingPanel;
- (void)setFloatingPanel:(BOOL)flag;
- (BOOL)becomesKeyOnlyIfNeeded;
- (void)setBecomesKeyOnlyIfNeeded:(BOOL)flag;
- (BOOL)worksWhenModal;
- (void)setWorksWhenModal:(BOOL)flag;
@end
我的面板.m
#import "MyPanel.h"
@implementation MyPanel
@end
那么,如果不直接继承 NSPanel(这意味着我必须将所有代码从 MyWindow 复制并粘贴到 MyPanel),我现在如何才能做到这一点?我必须重新创建/实现哪些方法、委托、属性才能获得与 NSPanel 相同的行为?
【问题讨论】:
标签: objective-c macos inheritance osx-lion nswindow