objective-c - 如何在 Objective-c 中引用/打开窗口

标签 objective-c cocoa

我需要获取对我的应用程序中的单个窗口的引用。如果我勾选“启动时可见”,它就会显示。

我不断看到如下代码,但这没有多大意义。如果没有在界面中的任何地方声明它,那么 self 如何知道 nib 文件中的窗口?

NSWindow *window = [self window]; 

当我在 applicationDidFinishLaunching 中运行该命令时,出现以下错误:

No visible @interface for 'AppDelegate' declares the selector 'window'

这是有道理的,因为没有声明接口(interface)。然而,当勾选“启动时可见”时,窗口如何自动加载?

我的最终目标是我需要引用一个窗口并更改其级别,即

[window setLevel:NSFloatingWindowLevel];

请帮忙?

最佳答案

简短的答案是:

在 AppDelegate.h 中,声明一个“window”属性:

 @property (strong) IBOutlet NSWindow* window;

在 MainMenu.nib 中,将主窗口连接到“AppDelegate”的“window”属性:

Right-click on the "AppDelegate" object, then click on the widget next to the "window" property and drag it to your window.

您的“AppDelegate”实例现在将具有“window”属性,并将分配给您的主窗口。

关于objective-c - 如何在 Objective-c 中引用/打开窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139716/

相关文章:

iphone - 导航后退按钮不显示,如何将后退按钮添加到 UINavigationItem

ios - 如何在 Core Data 中为 iOS 开发指定基数

objective-c - 如何获取 OSX 上当前工作区/屏幕壁纸的路径?

ios - 如何检查 FileManager.default.setUbiquitous() 的结果

ios - 从 UIWebview 应用程序崩溃创建 pdf 时

objective-c - 没有 mask 层的 UIView 圆角

python - IBoutlet 与 PyObjC 和 Interface Builder

objective-c - 为什么 NSClassFromString 在这两种情况下返回 nil 或不返回 nil?

ios - 通过标签编辑 UITableViewCell

objective-c - 创建一个不是警告消息的工作表