我正在使用一个非常复杂的 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(这意味着我必须将所有代码从MyWindowto 复制并粘贴到MyPanel)?我必须重新创建/实现哪些方法、委托、属性才能获得与 NSPanel 相同的行为?