2

我知道这里列出的解决方案:

如何以编程方式从 UITextField 禁用复制粘贴选项

和这里:

UITextField如何禁用粘贴?

但这并不是我想要做的。我觉得这有点乱,因为用户仍然可以点击并按住文本字段并查看粘贴选项是否可用。如果用户点击它,文本字段将不会响应该操作。

我想从出现的选项列表中实际删除“粘贴”选项。那可能吗?任何方向将不胜感激。提前致谢。

4

3 回答 3

2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if(textField == txtCardNumber)
    {
        if([string length]>1){
            //Disable to paste action
            return NO;

        }
     }
}
于 2014-02-14T08:51:12.130 回答
1

另一种方法是继承 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
于 2014-02-14T09:02:21.500 回答
0

使用以下方法

-(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];
}
于 2015-05-18T05:40:24.017 回答