AppDelegate (OSX) 中主 NSWindow 的引用出口
Posted
技术标签:
【中文标题】AppDelegate (OSX) 中主 NSWindow 的引用出口【英文标题】:Reference outlet to main NSWindow in AppDelegate (OSX) 【发布时间】:2015-05-27 20:27:42 【问题描述】:当您创建一个新项目时,我似乎记得您可以使用self.window
在AppDelegate
方法中访问它在情节提要中创建的基本空白窗口。
我似乎也无法通过情节提要为AppDelegate.h
文件设置参考出口。我只是产生幻觉还是无法从AppDelegate
访问窗口/控制器?
我是否混淆了 ios 和 OSX 实践?
【问题讨论】:
【参考方案1】:使用故事板,似乎不可能将 WindowController 连接到 AppDelegate。我使用以下内容来获取对主窗口的引用:
AppDelegate.h
@property (weak) NSWindow* window;
AppDelegate.m
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
_window = [[[NSApplication sharedApplication] windows] firstObject];
请参阅this question 以获取快速解决方案。希望这会有所帮助:)
【讨论】:
【参考方案2】:它对我有用。
我在 AppDelegate.h 中添加了一个 IBOutlet
@property (nonatomic) IBOutlet NSWindow *window;
然后在您的 Interface Builder(我的 MainMenu.xib)中选择 App Delegate:
您的 IBOutlet 应位于右侧的 Connection inspector
中:
也许您的 .xib 和 AppDelegate 之间的连接丢失了?
【讨论】:
我尝试控制单击并拖动到我的 appdelegate.h 文件以创建参考插座,但它不会做任何事情(通常会出现蓝线并且 id 能够创建一个iboutlet)我也在使用故事板而不是.xib。这基本上是一个使用故事板的新鲜可可应用程序。我想我可能只是将 iOS 基础知识与 OSX 混淆了,但我觉得我应该能够从 appdelegate.m 调用 self.window 而无需做任何事情...... 抱歉,在您的问题中错过了您的故事板参考。我没有使用带有故事板的 Cocoa 应用程序,所以我可能无法在这里为您提供帮助。 不用担心,我想我找到了解决问题的方法,而无需通过 appdelegate 访问窗口!感谢您的帮助:) 您找到解决方案了吗?我卡在这里以上是关于AppDelegate (OSX) 中主 NSWindow 的引用出口的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OSX 应用程序中将 CoreData 管理与 AppDelegate 分离
“无法识别的选择器”-将 AppDelegate 的 NSManagedObjectContext 导入其他类 (OSX) 时出错