我知道这里列出的解决方案:
和这里:
但这并不是我想要做的。我觉得这有点乱,因为用户仍然可以点击并按住文本字段并查看粘贴选项是否可用。如果用户点击它,文本字段将不会响应该操作。
我想从出现的选项列表中实际删除“粘贴”选项。那可能吗?任何方向将不胜感激。提前致谢。
我知道这里列出的解决方案:
和这里:
但这并不是我想要做的。我觉得这有点乱,因为用户仍然可以点击并按住文本字段并查看粘贴选项是否可用。如果用户点击它,文本字段将不会响应该操作。
我想从出现的选项列表中实际删除“粘贴”选项。那可能吗?任何方向将不胜感激。提前致谢。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if(textField == txtCardNumber)
{
if([string length]>1){
//Disable to paste action
return NO;
}
}
}
另一种方法是继承 UITextField 并覆盖 canPerformAction:withSender: 方法,如在显示之前将动态自定义 UIMenuItem 添加到复制和粘贴菜单中所述
@implementation MyTextView
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(paste:)) {
return NO;
}
return [super canPerformAction:action withSender:sender];
}
@end
使用以下方法
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
//Do your stuff
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:NO];
}];
return [super canPerformAction:action withSender:sender];
}