Add a UIMenuItem for a specific UITextView?

599 views Asked by At

I have a lot of UITextViews in my screen and i want to add a new custom UIMenuItem for one of them.

It is possible to add a custom UIMenuItem just for a specific UITextView?

I use below code but i have my custom button for all UITextViews

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

Thanks

2

There are 2 answers

2
Vizllx On BEST ANSWER

If you want UIMenuItem to be displayed for a specific UITextView you can just add menuItem in textFieldDidBeginEditingmethod and add a specific tag to the UITextView so that custom menu item displayed for that only :-

-(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]];
       }];
     }
 }
0
AudioBubble On

I did not test it, but you could reset the menuItems when one of the UITextView become first responder. I'd do that by subclassing UITextView and implementing the becomeFirstResponder.