我正在使用一个非常复杂的 NSWindow 自定义子类,称为MyWindow
. 现在我想创建一个名为的新类MyPanel
,它具有与 NSPanel 相同的行为,但继承自MyWindow
它的超类。我已经阅读了官方文档,NSPanel
但没有说明如何从自定义 NSWindow 子类制作面板。我当前的代码:
我的面板.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
to 复制并粘贴到MyPanel
)?我必须重新创建/实现哪些方法、委托、属性才能获得与 NSPanel 相同的行为?