场景
-
Cocoa
开发的时候经常会遇到需要上下文菜单的情况, 当然这种菜单不是菜单栏里的菜单, 而是根据数据多少展现不同的子菜单。这就需要动态创建子菜单,问题是如何创建?如何绑定SEL
, 如何加入子菜单标识,以便在点击后知道点击了那个菜单. -
菜单弹出, 之后呢?如何在指定位置弹出?比如一个按钮正下方,贴着按钮的底部.
说明
创建上下文菜单有3种方法:
方法 1
在 Interface Builder
配置. 添加一个独立的无父窗口的菜单到nib
文件, 包括连接的target
和action
. 接着连接到你的自定义NSView
的Outlet menu
.
方法 2
用编程的方式分配一个基本的menu
. 重载自定义NSView
的类方法defaultMenu
返回一个默认的menu
. 这个默认的菜单也可以通过访问NSResponder
的menu
方法获取到, 除非其他NSMenu