如何在iOS中的menucontroller中禁用粘贴选项?

时间:2013-01-21 07:52:42

标签: iphone ios ipad

当用户长按UITextField时,我必须禁用“粘贴”选项。我已获得此代码但仍然没有隐藏粘贴选项。

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {

    if ( [UIMenuController sharedMenuController] )
    {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:4)

正如在评论中已经说过的那样,你需要“在UITextField的子类中包含完全相同的代码,然后使用该类的实例”

所以..创建新文件..让我们说TestPaste .. UITextField的子类

enter image description here

将您的代码放在实现文件(TextPaste.m)

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {

    if ( [UIMenuController sharedMenuController] )
    {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

现在。转到您的NIB / Storyboard,单击您的UITextFiled并将textview类更改为TextPaste

enter image description here

答案 1 :(得分:1)

Piya只需查看以下链接: -

http://eureka.ykyuen.info/2010/04/12/iphone-disable-the-cutcopypaste-menu-on-uitextfield/

您还可以查看此代码: -

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}

答案 2 :(得分:1)

您必须创建一个新类 - > UITextField的子类..然后在你的代码/ xib中将textview类更改为自定义类..并在自定义TextField类中添加方法

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}

它会起作用

答案 3 :(得分:0)

使用此

@implementation UITextFiels (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end