单击UIMenuItem时显示自定义UIView

时间:2014-02-03 11:25:28

标签: ios uitextview uimenucontroller uimenuitem

所以我创建了一个自定义视图,我希望在单击UIMenuItem时显示在屏幕底部。

我的ViewController.m:

UIMenuController *menuController = [UIMenuController sharedMenuController];
UIMenuItem *translateItem = [[UIMenuItem alloc] initWithTitle:@"Translate" action:@selector(translateClicked:)];
[menuController setMenuItems:[NSArray arrayWithObject:translateItem]];

UITextView有一个带方法的自定义UITextView(CustomTextView.m):

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(copy:)) return YES;
if (action == @selector(translateClicked:)) return YES;
return NO;
}

- (IBAction)translateClicked:(id)sender
{
NSLog(@"In Custom UITextView");
}

这显示“复制”和“翻译”作为两个菜单选项。目前,当点击“翻译”时,我得到日志“在自定义UITextView中”。

是否可以让ViewController.m中的方法具有以下代码?

CustomPopUp *customView = [CustomPopUp customView];
[self.view addSubview:customView];

1 个答案:

答案 0 :(得分:0)

自己解决了这个问题:

删除该行:

if (action == @selector(translateClicked:)) return YES;
CustomTextView.m中的

并添加:

- (void) translateClicked: (id) sender
{
    NSLog(@"In ViewController");
}
ViewController.m中的

。这允许我在原始的UIViewController中运行方法。