gpt4 book ai didi

objective-c - 使用 NSWindowController 时出错

转载 作者:太空狗 更新时间:2023-10-30 03:54:40 24 4
gpt4 key购买 nike

我在很长一段时间后才开始一个新的 Cocoa 项目...而且我不知道为什么,但是当通过 NSWindowController 调用 xib 时,我总是会出错。我所做的非常简单:我有一个新项目作为起点,然后我不想从 Appdelegate 调用 xib,而是从 NSWindowController 的子类调用。然后输出告诉我:

2014-11-12 09:58:18.519 SimpleTest[8554:378690] ApplePersistence=NO

2014-11-12 09:58:18.671 SimpleTest[8554:378690] Failed to connect (window) outlet from (NSApplication) to (NSWindow): missing setter or instance variable

好的,它在代码中看起来如何?我的 Appdelegate 看起来像这样:

#import "AppDelegate.h"
#import "MainWindowController.h"

@interface AppDelegate ()

@property (weak) IBOutlet NSWindow *window;
@property (strong) MainWindowController *mainWindowController;

@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
_mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainMenu"];
[self.mainWindowController showWindow:self];
}

@end

到目前为止没有什么特别的。 MainWindowController 如下所示:

#import "MainWindowController.h"

@interface MainWindowController ()
@property (weak) IBOutlet NSWindow *window;

@end

@implementation MainWindowController

- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];

if (self != nil)
{
//do something
}

return self;
}

@end

同样非常简单...此外,我在 IB 中进行了一些修改:MainMenu.xib 的 File'Owner 变为 MainWindowController。它的“窗口” socket 连接到应用程序的窗口。窗口的委托(delegate)连接到文件的所有者。嗯,就是这样!但为什么我会收到此错误?我做错了什么?

---编辑---这显示了 IB 中的连接

conncections

最佳答案

最重要的是使用正确的选择器创建新实例并正确连接。

步骤:1.添加新的带窗口的x​​ib或一个空的xib并向其添加窗口

enter image description here

2.选择File owner并将其设置为NSWindowController或其子类。

enter image description here

  1. 选择窗口并将其连接到文件所有者

enter image description here

  1. 创建新的 NSWindowController 实例

  - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSWindowController *windowController = [[NSWindowController alloc] initWithWindowNibName:@"Window"];
[NSApp runModalForWindow:[windowController window]];
}

enter image description here

关于objective-c - 使用 NSWindowController 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com