【问题标题】:Reference outlet to main NSWindow in AppDelegate (OSX)AppDelegate (OSX) 中主 NSWindow 的引用出口
【发布时间】:2015-05-27 20:27:42
【问题描述】:

当您创建一个新项目时,我似乎记得您可以使用self.windowAppDelegate 方法中访问它在情节提要中创建的基本空白窗口。

我似乎也无法通过情节提要为AppDelegate.h 文件设置参考出口。我只是产生幻觉还是无法从AppDelegate 访问窗口/控制器?

我是否混淆了 iOS 和 OSX 实践?

【问题讨论】:

    标签: objective-c macos nswindow appdelegate


    【解决方案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 访问窗口!感谢您的帮助:)
      • 您找到解决方案了吗?我卡在这里
      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多