PSMenuItem 0.0.1

PSMenuItem 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

无人认领 维护。



  • 作者:
  • Peter Steinberger

一个基于块的 UIMenuItem 子类。

UIMenuItem 中的基于@selector的不可灵活方法让我很烦恼。我花了一些时间去寻找基于块的UIMenuItem,但找不到。所以最后,我坐下来为我自己的iOS PDF框架PSKit实现了自己的实现。

如果您像我一样对缺失的目标/动作模式感到烦恼,您会非常喜欢这个。请阅读我的网站上的深入文章。

如何使用

    PSMenuItem *actionItem = [[PSMenuItem alloc] initWithTitle:@"Action 1" block:^{
        [[[UIAlertView alloc] initWithTitle:@"Message" 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:^{
            NSLog(@"Sub 1 pressed");
        }]];
        [[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];
    }];

    [UIMenuController sharedMenuController].menuItems = @[actionItem, submenuItem];
    [[UIMenuController sharedMenuController] setTargetRect:button.bounds inView:button];
    [[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];

PSMenuItem使用ARC,并已在Xcode 4.4和4.5DP3(iOS 4.3+)上测试。

代码看起来有点吓人,并涉及交换某些方法,但实际上并不那么糟糕。没有使用私有API,并且苹果不太可能更改如此基本的东西如 UIResponder链。

创建者

Peter Steinberger @steipete

如果您觉得这个有用,请发个感谢的tweet。

许可证

PSMenuItem可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。