创建下拉(Pull-Down)菜单

来源:互联网 发布:淘宝店童装货源 编辑:程序博客网 时间:2024/05/16 15:41

下拉菜单式是与OS X程序交互的标准方式。默认,Xcode会为每个OS X工程创建以下的下拉菜单标题:

  • File
  • Edit
  • Format
  • View
  • Windows
  • Help

如图:

在菜单栏上添加新的下拉菜单标题:

从对象库中选择Application Menu Item,将其拖到菜单栏(Menu bar)或者Document Outline,如图:

在下拉菜单中添加新的命令:

为了添加新的命令到下拉菜单中,你需要使用对象库中的以下三个子项:

  • Menu Item:代表一个单独的命令
  • Submenu Menu Item:拥有其它命令的子菜单
  • Separate Menu Item:分隔条

和以上添加下拉菜单标题一样,只需要把上面的三个子项拖到相应位置即可。

将菜单命令连接到swift代码上:

你需要将你的菜单命令连接到IBAction方法上,当你创建了Cocoa应用时,你会发现好多菜单命令已经绑定了相应的方法,而这些特点是由NSApplication、NSWindow、NSView、NSResponder类提供的。

如果你点击应用中的一个菜单命令,然后选择连接检查(Connections Inspector)面板,你会发现选中的用户界面子项所连接的其它事物,如图:

在Xcode7中,如上图,Sent Actions项:左侧的action代表连接的是一个IBAction,右侧的第二行代表的是IBAction的方法名,第一行代表的是IBAction方法所在的文件(比如说AppDelegate);但是上图的方法不是在一个特定的文件中,而是连接到First Responder中,由NSReponder类定义的。在.xib中将菜单命令连接到方法中和其它用户界面子项连接到方法中的方式是相同的。

但是,使用storyboard时,连接菜单命令有一点不同,主要的差异就是在storyboard中,下拉菜单存储在单独的场景中,不与实际的用户界面在一起;也就是说:当你将下拉菜单命令连接到代码时,这会在在AppDelegate.swift中,而如果你将用户界面子项连接到代码时,这会在ViewController.swift文件中。如果如果下拉菜单命令需要用户界面子项时,该如何做呢?

解决办法是将你的下拉菜单命令连接到First Responder图标,这意味着你的程序会首先在AppDelegate.swift中寻找IBAction方法,但是,然后也会在其它文件中寻找相同的IBAction方法。所以,你在AppDelegate.swift中创建一个空的IBAction方法,然后在ViewController.swift中创建相同的IBAction方法。

0 0
原创粉丝点击