Добавить UIMenuItem для определенного UITextView?

У меня много UITextViews на моем экране, и я хочу добавить новый кастом UIMenuItem для одного из них.

Можно добавить кастом UIMenuItem только для конкретного UITextView?

Я использую приведенный ниже код, но у меня есть пользовательская кнопка для всех UITextViews

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Read" action:@selector(readButtonAction)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:menuItem]];

Спасибо

2 ответа

Решение

Если ты хочешь UIMenuItem отображаться для конкретного UITextView Вы можете просто добавить пункт меню в textFieldDidBeginEditingметод и добавить определенный тег к UITextView так что пользовательский пункт меню отображается только для этого:

-(void)textViewDidBeginEditing:(UITextView *)textView

{
  if(textview.tag==999)  //specify for which textveiw you want custom menu 
   {
  [[NSOperationQueue mainQueue] addOperationWithBlock:^{
   UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Read" action:@selector(readButtonAction)];
    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:menuItem]];
       }];
     }
 }

I did not test it, but you could reset the menuItems когда один из UITextView стать первым респондентом. I'd do that by subclassing UITextView и реализации becomeFirstResponder,

Другие вопросы по тегам