【问题标题】:How to display an NSMenu embedded in a NSPopover?如何显示嵌入在 NSPopover 中的 NSMenu?
【发布时间】:2017-11-21 23:13:18
【问题描述】:

有没有办法让类似NSMenu 的对象显示为NSPopover 的内容?

基本上,我想重现 macOS Dock 在您右键单击应用程序图标时所做的事情(我不介意这里的深色背景,我只对让菜单显示在类似弹出窗口的窗口中感兴趣箭头指向其目标的样式)。

我一直在研究NSPopUpButton 的作用,但我找不到以这种方式配置此组件的方法;它有一个arrowPosition,但这实际上是指按钮本身的箭头方向。 另外NSMenuNSObject,我又看不到一个干净的方法来获取它的视图并将其添加到弹出窗口,所以我想这是不可能的,但也许你有更好的主意?

感谢您的任何建议!

【问题讨论】:

  • 在此期间您找到解决方案了吗?
  • 很遗憾没有。
  • 我也没有!我认为有必要编写一个自定义的类似 NSMenu 的视图。
  • 我想是的。可能更好看,您可以找到一些模拟 Apple 菜单的组件,但我认为它们只能是类似 NSMenu 的自定义组件,正如您所提到的。

标签: macos nspopover nspopupbutton nspopupbuttoncell


【解决方案1】:

您可以查看苹果菜单编程指南: https://developer.apple.com/library/archive/samplecode/MenuItemView/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004136

在 AppDelegate 中你可以看到:

// -------------------------------------------------------------------------------
//  applicationDockMenu:sender
// -------------------------------------------------------------------------------
// This NSApplication delegate method is called when the user clicks and holds on
// the application icon in the dock.
//
- (NSMenu *)applicationDockMenu:(NSApplication *)sender
{
    return self.appDockMenu;
}

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多