为特定的 UITextView 添加 UIMenuItem?
Posted
技术标签:
【中文标题】为特定的 UITextView 添加 UIMenuItem?【英文标题】:Add a UIMenuItem for a specific UITextView? 【发布时间】:2016-01-27 09:00:01 【问题描述】:我的屏幕上有很多UITextView
s,我想为其中一个添加一个新的自定义UIMenuItem
。
是否可以仅为特定的UITextView
添加自定义UIMenuItem
?
我使用下面的代码,但我对所有 UITextView
s 都有我的自定义按钮
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Read" action:@selector(readButtonAction)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:menuItem]];
谢谢
【问题讨论】:
【参考方案1】:如果您希望为特定的UITextView
显示UIMenuItem
,您只需在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]];
];
【讨论】:
是的,但@Charles Thierry 是对的。每次不是我特定的 UITextView 时,您都需要重置。只需在此处添加一个 else 并使用空数组 setMenuIetems 即可。谢谢你的回答 是的,我认为其他部分将由您处理;)【参考方案2】:我没有测试它,但是当UITextView
之一成为第一响应者时,您可以重置menuItems
。我会通过继承UITextView
并实现becomeFirstResponder
来做到这一点。
【讨论】:
以上是关于为特定的 UITextView 添加 UIMenuItem?的主要内容,如果未能解决你的问题,请参考以下文章
在 MATLAB UIMenu 中使用 Enter 作为加速器