所以我创建了一个自定义视图,我希望在单击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];
答案 0 :(得分:0)
自己解决了这个问题:
删除该行:
if (action == @selector(translateClicked:)) return YES;
CustomTextView.m中的
并添加:
- (void) translateClicked: (id) sender
{
NSLog(@"In ViewController");
}
ViewController.m中的。这允许我在原始的UIViewController中运行方法。