我的OS设置为暗模式,除某些动态创建的NSMenu实例以旧的浅色样式渲染外,我的整个应用程序均正确渲染。
如何使用深色视觉样式呈现这些菜单?
答案 0 :(得分:1)
仅当您指定父视图时,才会应用深色视觉样式。
如果此处的view
是nil
,则将使用旧样式:
NSMenu* menu;
NSView* view; // cannot be nil
[menu popUpMenuPositioningItem:nil atLocation:NSMakePoint(0, 0) inView:view];
答案 1 :(得分:0)
apperance
有一个未记录的popUpMenuPositioningItem
参数。您必须自定义现有的NSMenu
类才能使用它:
@interface NSMenu ()
- (BOOL)popUpMenuPositioningItem:(nullable NSMenuItem *)item atLocation:(NSPoint)location inView:(nullable NSView *)view appearance:(nullable NSAppearance *)appearance NS_AVAILABLE_MAC(10_6);
@end
如果要通过popUp
在Swift中使用它,则必须在“ Objective-C桥接头”文件中声明它,并在“ Swift Compiler-General”下将路径添加到Xcode项目的构建设置。 / p>