Отображение пользовательского UIView при нажатии на 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];

person AJ9    schedule 03.02.2014    source источник


Ответы (1)


Решил это сам:

удалив строку:

if (action == @selector(translateClicked:)) return YES;

в CustomTextView.m

и добавив:

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

в ViewController.m. Это позволило мне запускать методы в исходном UIViewController.

person AJ9    schedule 03.02.2014