Mac应用程序关于菜单自定义

时间:2015-06-25 09:17:12

标签: objective-c macos

我正在做我的第一个mac应用程序。我添加了我的菜单和自定义。我的问题是我需要在about视图中进行一些自定义。点击about菜单时,会自动弹出一个视图,其中包含从应用程序plist中获取的详细信息Name,Icon,copyright string,version等。关于XCode应用程序中的菜单,该应用程序具有确认和被许可方协议的按钮。在Chrome中关于Chrome将在网页中创建一个新标签,并显示详细信息。这怎么可能?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您似乎可以在MainMenu.xib中执行此操作,将菜单项About myApp的目标操作更改为自定义操作。

参见文档:

  

跨Nib文件连接菜单项

     

OS X应用程序菜单栏中的项目通常需要进行交互   包含许多不同的对象,包括应用程序的文档   和窗户。问题是许多这些对象不能(或   不应该直接从主nib文件访问。文件   主nib文件的所有者始终设置为的实例   NSApplication类。虽然你可能能够实例化一个   主nib文件中的自定义对象数量很少   实际或必要的。在文档对象的情况下,连接   直接到特定的文档对象是不可能的,因为   文档对象的数量可以动态改变甚至可以改变   零。

     

大多数菜单项会将操作消息发送到以下某个选项:

     
      
  • 始终处理命令的固定对象

  •   
  • 动态对象,例如文档或窗口

  •   
     

消息传递固定对象是一个相对简单的过程   通常最好通过应用程序委托处理。该   应用程序委托对象协助NSApplication对象   运行应用程序,是少数正确的对象之一   属于主nib文件。如果菜单项指的是   应用程序级命令,您可以直接在其中实现该命令   应用程序委托或只是让代理转发消息   到应用程序中其他地方的适当对象。

     

如果您有一个菜单项作用于最前面的内容   窗口,您需要将菜单项链接到First Responder   占位符对象。如果操作方法与菜单项关联   特定于你的一个对象(并没有由Cocoa定义),你   必须在创建之前将该操作添加到First Responder   连接。

     

创建连接后,您需要实现操作方法   在您的自定义类中。那个对象也应该实现   validateMenuItem:在适当的时间启用菜单项的方法。   有关响应程序链如何处理命令的更多信息,   请参阅Cocoa事件处理指南。