【问题标题】:single button UIMenuController单按钮 UIMenuController
【发布时间】:2012-10-10 09:59:45
【问题描述】:

早上好!

我正在编写一个显示商店列表的应用程序,每个商店可以销售 2 种产品和/或可以是在线商店。

为了在我的应用程序上显示这一点,我添加了一些“图标”,但如果它们足够“自我解释”,我正在寻找一种易于使用的解释方式。

所以知道当用户点击图标时我使用的是UImenuController(这是一个UIButton

我只是在寻找简单的东西,如下图:

但不是

突出显示

我只是想放一些像

卖 x 产品

我面临的问题是我可以显示这个 UIMenuController,但是正如你在这张图片中看到的那样,他有很多“垃圾值”:

不是很酷吧?

他是链接到我的按钮的方法:

-(void)buttonClicked:(UIBarButtonItem*)sender event:(UIEvent*)event{

    [self becomeFirstResponder];

    UIView *buttonView=[[event.allTouches anyObject] view];
    CGRect buttonFrame=[buttonView convertRect:buttonView.frame toView:self.view];

    UIMenuItem *flag = [[UIMenuItem alloc] initWithTitle:@"Select" action:@selector(selectItem:)];

    UIMenuController *menu = [UIMenuController sharedMenuController];

    [menu setMenuItems:[NSArray arrayWithObjects:flag, nil]];

    [menu setTargetRect:buttonFrame inView:self.view];

    [menu setMenuVisible:YES animated:YES];
}

我显然有:

✔ 为 -(BOOL)canBecomeFirstResponder

✔ 为 -(BOOL)canPerformAction

✔ 为 -(BOOL)canPerformAction

✔ 为 -(BOOL)canPerformAction -(BOOL)canPerformAction:(SEL)action withSender:(id)sender

✔ 文本“Select”确实出现了,但在菜单的“末尾”(您必须使用向右的箭头)

欢迎任何帮助和/或线索! :-)

【问题讨论】:

标签: iphone ios uimenucontroller


【解决方案1】:

好吧,我终于设法(在谷歌和 Stackoverflow 上花了一个下午之后)实现了它!

这很容易:当你覆盖时

-(BOOL)canPerformAction -(BOOL)canPerformAction:(SEL)action

直接返回

[super canPerformAction:action withSender:sender];

而不是

YES

和“瞧!”

:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多