首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MonoMac中打开可可窗口

在MonoMac中打开可可窗口
EN

Stack Overflow用户
提问于 2013-02-07 22:12:27
回答 1查看 966关注 0票数 1

我试图完成打开一个新窗口这个非常简单的任务,但我似乎完全无法做到这一点。

我在Mac上使用MonoMac和monobjc。在创建新的monobjc项目时,会创建一个MainMenu.xib。我已经设法使用XCode编辑器向该文件添加了控件和绑定。此窗口在应用程序启动时自动打开。

然而,当我尝试创建一个新窗口时,我根本不能让它显示出来。我创建了一个.xib文件,方法是右键单击MainMenu.xib的父文件夹,然后单击Add file => Cocoa Window Template。这个文件只需要一个MainMenu.xib就可以在XCode中编辑。

然后,我继续创建一个继承NSWindowController的类,并在我的.xib文件中选择这个类作为窗口的“文件所有者”。然后,我可以设计窗口,并向控制器添加出口和操作。

但是我想不出怎么打开窗户。我已经尝试了这个的多个变体:

代码语言:javascript
复制
var f = new RegularLoginForm(); //which inherits NSWindowController
f.LoadWindow(); //I have tried without this line
f.ShowWindow(null); // I have also tried sending in the AppDelegate object (which is the controller for MainMenu.xib)

但似乎什么都不起作用--也就是说,窗口永远不会打开。有什么建议吗?

编辑:这是我的.xib及其配置的屏幕截图:https://dl.dropbox.com/u/1545094/so_nswindowcontroller.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-08 00:24:14

您在Window.xib中将RegularLoginForm设置为文件的所有者;但是您是否也将窗口插座从文件的所有者连接到界面生成器中的窗口?

即,在IB中右键单击File的所有者,然后单击并拖动窗口插座到窗口对象

此外,我尝试过您的代码,它在调用

代码语言:javascript
复制
f.ShowWindow(null)

错误致命的未处理异常: System.ArgumentNullException:参数不能为空。参数名称:发送者

如果我分配发送者参数,它运行得很好。

代码语言:javascript
复制
f.ShowWindow(this)

但是,我的环境只有MonoMac;没有单一对象(我不确定如何或为什么要同时使用两者?);所以YMMV。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14753166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档