繁体   English   中英

如何将自定义NSWindow子类转换为自定义NSPanel?

[英]How can I make a custom NSWindow subclass into a custom NSPanel?

我正在使用NSWindow的非常复杂的自定义子类MyWindow 现在,我想创建一个名为MyPanel的新类,该类具有与NSPanel相同的行为,但是它继承自MyWindow是其超类。 我已经阅读了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

MyPanel.m

#import "MyPanel.h"

@implementation MyPanel

@end

因此,现在如何在不直接子类化NSPanel情况下实现这NSPanel (这意味着我必须将所有代码从MyWindow复制并粘贴到MyPanel )? 我必须重新创建/实现哪些方法,委托,属性才能获得与NSPanel相同的行为?

听起来您已经亲自回答了这个问题。 NSPanel是NSWindow的子类,因此您应该将NSPanel子类化,而不是将NSWindow子类化。 话虽如此..如果您小心的话,可以创建一个NSPanel并以编程方式将其超类更改为MyWindow的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM