为特定的UITextView添加UIMenuItem?

时间:2016-01-27 09:00:01

标签: ios objective-c uitextview uimenucontroller uimenuitem

我的屏幕上有很多UITextView,我想为其中一个添加新的自定义UIMenuItem

可以为特定UIMenuItem添加自定义UITextView吗?

我使用下面的代码,但我有自定义按钮用于所有UITextView s

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

由于

2 个答案:

答案 0 :(得分:1)

我没有测试它,但是当menuItems中的一个成为第一响应者时,您可以重置UITextView。我会通过继承UITextView并实施becomeFirstResponder

来做到这一点

答案 1 :(得分:1)

如果您希望为特定UIMenuItem显示UITextView,则可以在textFieldDidBeginEditing方法中添加menuItem,并将特定标记添加到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]];
       }];
     }
 }