- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 NSWindowController 子类的简单 Cocoa 应用程序。在我设置的 Nib 中:
我的 NSWindowController 子类的 init 方法被调用(我称为 super),但无论我做什么 windowDidLoad 都不会被调用。
我一定错过了一些明显的东西,但我一生都无法弄清楚它是什么。
最佳答案
您正在尝试通过在另一个 Nib 中实例化 NSWindowController
来创建它的实例。但是,当您在 nib 文件中实例化对象时,它是通过调用 -initWithCoder:
来初始化的。
-initWithCoder:
不是 NSWindowController
的指定初始化程序,因此您的 NSWindowController
实例从未真正加载其 Nib 。
不要通过将 NSWindowController
实例放置在 Interface Builder 中的 MainMenu.xib
文件中来实例化它,而是以编程方式创建它:
在AppDelegate.h中:
@class YourWindowController;
@interface AppDelegate : NSObject
{
YourWindowController* winController;
}
@end
在AppDelegate.m中:
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification*)notification
{
winController = [[YourWindowController alloc] init];
[winController showWindow:self];
}
- (void)dealloc
{
[winController release];
[super dealloc];
}
@end
在YourWindowController.m中:
@implementation YourWindowController
- (id)init
{
self=[super initWithWindowNibName:@"YourWindowNibName"];
if(self)
{
//perform any initializations
}
return self;
}
@end
关于cocoa - NSWindowController windowDidLoad 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695671/
我有一个重写 ReactiveWindowController 的类。 我需要获取基类中观察者的引用。但因为它不在那里。我决定覆盖它。 /// public override void Wi
我有一个使用 NSWindowController 子类的简单 Cocoa 应用程序。在我设置的 Nib 中: 将所有者的类文件保存到我的 NSWindowController 子类 文件所有者到 N
这让我发疯。我的应用程序中有几个窗口,我通过菜单打开它们。我现在添加了一个新窗口,但它是 windowDidLoad从未被调用过。 fileprivate let paymentWindowContr
当我们必须使用这些方法时,您能解释一下吗?以及在什么样的情况下我们应该使用哪种方法?现在我测试哪个有效并使用它(是的,我是初学者)..谢谢。我正在为 MAC 进行开发。 最佳答案 首先,你永远不应该自
我试图在窗口加载后立即将 Storyboard显示为工作表。 override func windowDidLoad() { super.windowDidLoad() let sto
我刚刚试用了 Xcode 6 中包含的新 mac Storyboard功能。我使用 Storyboard和 swift 设置了一个新的 OS X 项目,然后我创建了一个新文件 MainWindowCo
我是一名 iOS 开发人员,打算开发一个 OS X 应用程序。然而,他们彼此之间却有很大不同。 我想在应用程序启动时添加启动画面。 - (void) applicationDidFinishLaunc
我正在使用以下代码创建一个窗口: if(hudWindow == nil) hudWindow = [[TimelogWindowController alloc] initWithWindo
我是一名优秀的程序员,十分优秀!