Home > Software design >  How do I present a pull-down menu?
How do I present a pull-down menu?

Time:09-16

I'm looking to add a pull-down menu and I have no idea where to start. Apple's website guides me to UIMenu but I can't figure out how it works.

I know how to make a 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];

How do I attach it to a UIButton?

CodePudding user response:

So it seems, after several radical rewrites of your question, that you want a menu that appears from a button. Well, a UIButton has a menu property and you assign a UIMenu to it. Done.

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

If you also want the menu to appear as a response to a simple tap, rather than a long press, then also set the button's showsMenuAsPrimaryAction property to YES.

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

(A UIBarButtonItem has similar properties, in case you want to make the menu appear that way.)

  • Related