Objective c 如何在macOS游戏模板中连接NSWindowDelegate
这是相关问题的“操作方法”: 使用Xcode(9.1)macOS“游戏”模板- 我想使用AppDelegate类创建一个简单的Objective c 如何在macOS游戏模板中连接NSWindowDelegate,objective-c,macos,cocoa,Objective C,Macos,Cocoa,这是相关问题的“操作方法”: 使用Xcode(9.1)macOS“游戏”模板- 我想使用AppDelegate类创建一个简单的NSWindowDelegate。但是,我似乎无法将给定的NSWindow插座连接到任何东西 // AppDelegate.h #import <Cocoa/Cocoa.h> @interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate> @propert
NSWindowDelegate
。但是,我似乎无法将给定的NSWindow
插座连接到任何东西
// AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate>
@property (assign) IBOutlet NSWindow *window; // won't connect
@end
//AppDelegate.h
#进口
@接口AppDelegate:NSObject
@属性(分配)IBMOutlet NSWindow*window;//无法连接
@结束
我假设我应该连接到故事板中的“窗口”。这就是我尝试连接时发生的情况-检查员没有出现
我错过了什么
注意:我只是随便玩玩,所以我不在乎AppDelegate是否是正确的位置,我只想让它工作
编辑1
使用answer的建议,我尝试将“TestFullscreen”窗口连接到AppDelegate对象,但它仍然无法连接,无论是来自AppDelegate检查器还是代码中的属性声明
您应该有一个
委托
对象,这就是应该连接到窗口的对象
看起来您当前正在尝试将窗口连接到自身。此外,您似乎也没有窗口的视图,因此您需要为窗口内容添加该视图。一种解决方法是简单地创建非工作区项目
编辑XIB允许您在指定NSWindowDelegate协议后将窗口代理出口连接到AppDelegate。谢谢,但仍然无法连接到我的代理。有没有可能我把WindowController和窗口本身弄混了?@Justicle:我错误地发布了通常会对NIB和XIB执行的操作。基本上,通过故事板,您可以将WindowController连接到ViewController。这个例子应该能说明它是如何完成的:看看这个项目-不确定这会有什么帮助我想响应NSWindow消息,而不是NSWindowController消息。@Justicle:故事板的工作方式与nib或xib不同,因此代理连接不会直接挂接到窗口。通常,您会有一个WindowController>Window>First Responder>然后是故事板入口点。就我个人而言,我不喜欢在macOS上使用故事板,因为它需要复杂的序列,然而,创建一个新的基本故事板应用程序应该向您展示如何在一个典型的项目中建立连接。顺便说一句-我认为Xcode中有一个bug,也许你可以确认一下在窗口控制器下面的“窗口”上的control-c(复制)它崩溃了(至少对我来说是这样)。您是否尝试将窗口控制器下面的“TestFullScreen”窗口连接到视图控制器视图?如果您只是使用AppDelegate编写所有内容,则不需要NSWindowController。