Отображение пользовательского 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];
1 ответ
Решил это сам:
удалив строку:
if (action == @selector(translateClicked:)) return YES;
в CustomTextView.m
и добавление:
- (void) translateClicked: (id) sender
{
NSLog(@"In ViewController");
}
в ViewController.m. Это позволило мне запускать методы в оригинальном UIViewController.