gpt4 book ai didi

objective-c - IBOutlets 可以在 App Delegate 中使用来访问文档窗口吗?

转载 作者:行者123 更新时间:2023-12-03 17:20:46 24 4
gpt4 key购买 nike

请原谅我,如果这是显而易见的,但我对 Cocoa 和 Objective-C 很陌生。

我有一个非常简单的文本编辑器应用程序,其中有两个使用 Interface Builder 创建的窗口。一个用于文本内容,另一个窗口包含各种控件和“进入全屏”按钮。

我在应用程序委托(delegate)中定义了一个名为 myWindow 的 IBOutlet,链接到文本编辑器窗口。我使用:

[self.myWindow togglefullscreen]

在应用程序委托(delegate)中,当在另一个窗口上按下“进入全屏”按钮时进入全屏模式。

现在,我正在尝试将我的应用程序转换为基于文档的应用程序。

我的问题是:如何访问当前文档的窗口,以便我可以从应用程序委托(delegate)中调用togglefullscreen?这可能/优雅吗?

接口(interface)构建器不允许我将应用程序委托(delegate)中的 IBOutlet 连接到 Document.xib 中的文档窗口,我认为这是有道理的,因为可能有它的多个实例。

由此产生的另一个问题是,这个全屏功能是否应该在 Document 类中实现,并且“全屏”按钮是否应该位于文档窗口本身上(因为只有一个文档会全屏) ?

任何想法将不胜感激:-)

约翰

最佳答案

一个 NSDocument(子类)可以有多个与其关联的窗口。你的 NSDocument 子类可以访问 NSDocument 的 windowControllers 属性来获取 windowControllers 的 NSArray(IIRC 从后到前的顺序),并询问每个 Controller 与其关联的窗口(属性)。

关于objective-c - IBOutlets 可以在 App Delegate 中使用来访问文档窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570458/

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