objective-c – 如何从其他类(NSViewController的子类)获取主窗口(App Delegate)?

objective-c – 如何从其他类(NSViewController的子类)获取主窗口(App Delegate)?,第1张

概述我试图改变我的Windows内容,从其他类,这是NSViewController的子类。我尝试下面的代码,但它不做任何事情。 [NSApplication sharedApplication]mainWindow]setContentView:[self view]]; //code in NSViewController[NSApplication sharedApplication]mai 我试图改变我的windows内容,从其他类,这是NSVIEwController的子类。我尝试下面的代码,但它不做任何事情。

@H_301_11@[NSApplication sharedApplication]mainWindow]setContentVIEw:[self vIEw]]; //code in NSVIEwController[NSApplication sharedApplication]mainWindow] // returns null

我试图添加

@H_301_11@[window makeMainWindow];

在App Delegate类中,但它不会有帮助。

我错过了什么?

附:另外我使用下面的代码来调用我的类中的任何委托函数,

@H_301_11@[(appDelegate *) [[NSApplication sharedApplication]delegate]MyMethod];

但我不知道有没有更好的东西,wihtout导入代表类。这样的东西

@H_301_11@[[NSApplication sharedApplication]delegate]MyMethod];

(给出警告)

解决方法 对于 mainWindow method the docs say:

This method might return nil if the application’s nib file hasn’t finished loading,if the receiver is not active,or if the application is hIDden.

我刚刚创建了一个快速测试应用程序,我放置了以下代码:

@H_301_11@NSLog(@"%@",[[NSApplication sharedApplication] mainWindow]);

进入我的applicationDIDFinishLaunching:aNotification方法,并进入一个动作方法,我连接到我的应用程序主窗口中的一个按钮。

在启动时,mainWindow为零,但是当我单击按钮(所有内容都运行并显示后),mainWindow不再为零。

NSApplication提供了其他可能对您有用的方法:

> – windows – 所有窗口的数组;
> – keyWindow – 给出正在接收键盘输入(或nil)的窗口;
> – windowWithWindowNumber: – 返回与窗口号对应的窗口 – 如果您知道要更换其内容的窗口的编号,可以使用此窗口;
> – makewindowsPerform:inorder: – 向每个窗口发送一条消息 – 您可以使用它来测试每个窗口,看看它是否是您感兴趣的。

关于代表的呼叫方法,你所说的话给我一个警告就行了。例如,这个工作没有警告:

@H_301_11@NSLog(@"%@",[[[NSApplication sharedApplication]delegate] description]);

你收到的警告究竟是什么?你试图调用不存在的方法吗?

总结

以上是内存溢出为你收集整理的objective-c – 如何从其他类(NSViewController的子类)获取主窗口(App Delegate)?全部内容,希望文章能够帮你解决objective-c – 如何从其他类(NSViewController的子类)获取主窗口(App Delegate)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1035531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存