gpt4 book ai didi

swift - 为什么我不能从 ViewController 访问我的应用程序委托(delegate)?

转载 作者:行者123 更新时间:2023-11-28 07:06:30 25 4
gpt4 key购买 nike

在我的应用程序中,我想从 View Controller 访问委托(delegate)方法,但是当我尝试以这种方式访问​​它时:

let appDelegate = NSApplication.sharedApplication().delegate

我得到的是 nil,这是什么原因造成的?

使用附加信息进行编辑:
当我创建应用程序时,我犯了一个错误,因为我没有选择使用 Storyboard,但是当我需要它们时,我只是添加了一个 Storyboard文件并将其定义为主界面,如下所示:
enter image description here

我相信我的问题可能来自这里,是否可以显示界面但未正确链接到 NSApplication(因此链接到委托(delegate))?
如果是,我该如何解决?

谢谢。

最佳答案

在你的 Storyboard中,确保 App Delegate的自定义类(在 Identity Inspector 中)设置为您的委托(delegate)类。

enter image description here enter image description here

更新

如果您刚刚创建了一个新的 storyboard ,它将是空的。据我所知,没有创建应用程序场景的“标准”方法。您必须从另一个 Storyboard复制它(毕竟它们只是 XML)。

最简单的方法是使用 Use Storyboard 创建一个新项目启用,然后右键单击您自动生成的 Main.storyboard ,选择打开方式源代码。之后,复制 <!--Application-->分给你的空Storyboard.storyboard .不要也捕获它的页眉和页 footer 分。下面只是一个例子。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/>
</dependencies>
<scenes>
<!--Application-->

<!-- your copied content -->

</scenes>
</document>

最后,右键单击您的 Storyboard.storyboard并选择 Open AsInterface Builder - Storyboard 以恢复正常的设计 View 。

关于swift - 为什么我不能从 ViewController 访问我的应用程序委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378296/

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