macOS-NSMenu
1 简述
管理应用菜单的对象,通常会在程序的主菜单栏,视图右键菜单,Dock菜单使用。
@interface NSMenu : NSObject <NSCopying, NSCoding, NSUserInterfaceItemIdentification, NSAccessibilityElement, NSAccessibility>
2 NSMenu
源码注解
2.1 创建
- (instancetype)initWithTitle:(NSString *)title NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
2.2 常用属性
// 菜单标题
@property (copy) NSString *title;
// 父菜单
@property (nullable, assign) NSMenu *supermenu;
// 当前菜单下的子菜单数组
@property (copy) NSArray<NSMenuItem *> *itemArray;
// item数量
@property (readonly) NSInteger numberOfItems;
// 是否自动启用项目
@property BOOL autoenablesItems;
// 菜单高度
@property (readonly) CGFloat menuBarHeight;
// 高亮的item
@property (nullable, readonly, strong) NSMenuItem *highlightedItem API_AVAILABLE(macos(10.5));
// 最小宽度
@property CGFloat minimumWidth API_AVAILABLE(macos(10.6));
@property (readonly) NSSize size API_AVAILABLE(macos(10.6));
// 确定上下文菜单插件是否可以附加到菜单(如果用作上下文菜单)。
@property (null_resettable, strong) NSFont *font API_AVAILABLE(macos(10.6));
// 确定菜单是否包含状态图像的列
@property BOOL showsStateColumn API_AVAILABLE(macos(10.5));