【问题标题】:How do I present a pull-down menu?如何呈现下拉菜单?
【发布时间】:2021-10-22 19:11:16
【问题描述】:

我希望添加一个下拉菜单,但我不知道从哪里开始。 Apple 的 website 引导我使用 UIMenu,但我不知道它是如何工作的。

我知道如何制作 UIMenu:

NSMutableArray* actions = [[NSMutableArray alloc] init];

[actions addObject:[UIAction actionWithTitle:@"Edit"
                                       image:nil
                                  identifier:nil
                                     handler:^(__kindof UIAction* _Nonnull action) {
    
    // ...
}]];

UIMenu* menu =
[UIMenu menuWithTitle:@""
             children:actions];

如何将它附加到 UIButton?

【问题讨论】:

  • “我找不到菜单生成器”...developer.apple.com/documentation/uikit/…
  • 您是否阅读了我链接到您的页面?它直接回答了这两个问题,就在页面上。
  • 但这不是系统菜单。这是一个上下文菜单。你不会为此使用构建器。
  • 您是否希望在按下视图时显示此菜单?然后你给那个视图一个 UIContextMenuInteraction。就像在您指向的教程中一样。您没有提供关于希望您的菜单如何出现的信息,因此无法提供更多信息。
  • 非常混乱。现在你已经有了一些代码,毫无疑问。此时的问题是什么?这应该是答案吗?然后不要把它放在问题中,把它放在答案中。

标签: ios objective-c uimenu


【解决方案1】:

因此,在对您的问题进行了几次彻底的重写之后,您似乎想要一个从按钮出现的菜单。嗯,一个 UIButton 有一个 menu 属性,你分配一个 UIMenu 给它。完成。

https://developer.apple.com/documentation/uikit/uibutton/3601189-menu?language=objc

如果您还希望菜单显示为对简单点击而不是长按的响应,那么还将按钮的 showsMenuAsPrimaryAction 属性设置为 YES。

https://developer.apple.com/documentation/uikit/uicontrol/3601223-showsmenuasprimaryaction?language=objc

(UIBarButtonItem 具有类似的属性,以防您想让菜单以这种方式显示。)

【讨论】:

  • 解决方案不适合我
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多