/
PSViewController.m
50 lines (40 loc) · 1.75 KB
/
PSViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//
// PSViewController.m
// PSMenuItemDemo
//
// Copyright (c) 2012 Peter Steinberger. All rights reserved.
// This is code from http://pspdfkit.com.
//
#import "PSViewController.h"
#import "PSMenuItem.h"
@implementation PSViewController
// add support for PSMenuItem. Needs to be called once per class.
+ (void)load {
[PSMenuItem installMenuHandlerForObject:self];
}
+ (void)initialize {
[PSMenuItem installMenuHandlerForObject:self];
}
- (IBAction)buttonPressed:(UIButton *)button {
PSMenuItem *actionItem = [[PSMenuItem alloc] initWithTitle:@"Action 1" block:^{
[[[UIAlertView alloc] initWithTitle:@"Action 1" message:@"From a block!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}];
PSMenuItem *action2Item = [[PSMenuItem alloc] initWithTitle:@"Action 2" block:^{
[[[UIAlertView alloc] initWithTitle:@"Action 2" message:@"From a block!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}];
PSMenuItem *submenuItem = [[PSMenuItem alloc] initWithTitle:@"Submenu..." block:^{
[UIMenuController sharedMenuController].menuItems = @[
[[PSMenuItem alloc] initWithTitle:@"Back..." block:^{
[self buttonPressed:button];
}],
[[PSMenuItem alloc] initWithTitle:@"Sub 1" block:NULL],
[[PSMenuItem alloc] initWithTitle:@"Sub 2" block:^{
NSLog(@"Sub 2 pressed.");
}]];
[[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];
}];
[UIMenuController sharedMenuController].menuItems = @[actionItem, action2Item, submenuItem];
[[UIMenuController sharedMenuController] setTargetRect:button.bounds inView:button];
[[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];
}
@end