![](/img/trans.png)
[英]How do I display an NSPanel/NSWindow to the side of my application?
[英]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.