您的位置:首页 > 其它

Mac简单例子实现主菜单在多个窗口之间的共用问题

2013-02-25 16:04 369 查看
【原文地址:Mac简单例子实现主菜单在多个窗口之间的共用问题

【作者:chenghxc

【Demo:源码下载地址

为了更简单的实现主菜单在多个窗口之间的共用问题,特意写了一个超级简单的例子。对于Mac的初学者理解起来会比较容易,大牛的路过勿笑哈。

这个例子中主要有两个窗口,在这两个窗口中都实现了 -(IBAction)getKaoYa:(id)sender 方法。在主菜单中有一个‘点烤鸭’菜单项(为什么叫点烤鸭呢?因为此时我肚子有点饿。),‘点烤鸭’的 selector 不是直接链接到第一个窗口的 getKaoYa: 方法上,而是链接了 First Responder 里的 getKaoYa: 。



为什么 First Responder 中会有 getKaoYa: 方法呢?【对于 First Responder 的作用大家可以网上搜索以下,传送门

简单的解释就是只要你的方法的返回类型是IBAction ,例如 -(IBAction)getKaoYa:(id)sender 就会出现在 First Responder 中,而在运行时当触发 First Responder 中的某个方法时,First Responder 会调用当前活跃窗口(也可以叫置顶窗口)的相应方法。

好了,大家可以下载我的demo看一下。打开两个窗口后尝试切换窗口,点击主菜单中的‘点烤鸭’,在后台会输出不一样的信息。

如果你想禁用某个窗口的‘点烤鸭’功能,可以在相应窗口的-(BOOL)validateMenuItem:(NSMenuItem *)menuItem中控制。(demo中会有相应说明)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐