我的操作系统设置为暗模式,我的整个应用程序都可以正常呈现,除了一些动态创建的 NSMenu 实例,它们以旧的浅色样式呈现。
如何让这些菜单使用深色视觉风格呈现?
我的操作系统设置为暗模式,我的整个应用程序都可以正常呈现,除了一些动态创建的 NSMenu 实例,它们以旧的浅色样式呈现。
如何让这些菜单使用深色视觉风格呈现?
仅当您指定父视图时才会应用深色视觉样式。
如果view
在nil
这里,将使用旧样式:
NSMenu* menu;
NSView* view; // cannot be nil
[menu popUpMenuPositioningItem:nil atLocation:NSMakePoint(0, 0) inView:view];
有一个未记录的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
如果你想通过 Swift 在 Swift 中使用它,popUp
你必须在“Objective-C Bridging Header”文件中声明它,并在“Swift Compiler - General”下添加 Xcode 项目构建设置的路径