2

早上好 !

我正在编写一个显示商店列表的应用程序,每个商店都可以销售 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];
}

我显然有:

✔ 返回 YES -(BOOL)canBecomeFirstResponder

✔ 返回 YES -(BOOL)canPerformAction

✔ 返回 YES -(BOOL)canPerformAction

✔ 为 -(BOOL)canPerformAction -(BOOL)canPerformAction:(SEL)actionwithSender:(id)sender返回 YES

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

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

4

1 回答 1

1

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

这很容易:当你覆盖

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

刚回来

[super canPerformAction:action withSender:sender];

代替

YES

和“瞧!”

:)

于 2012-10-10T13:27:45.010 回答