0

当用户长按 UITextField 时,我必须禁用粘贴选项。我有这个代码,但它仍然没有隐藏粘贴选项。

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

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

    }
    return NO;  
}

谁能帮我?

4

4 回答 4

4

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

所以.. 创建新文件.. 比如说 TestPaste.. UITextField 的子类

在此处输入图像描述

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

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

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

    }
    return NO;  
}

现在。转到您的笔尖/故事板,单击您的 UITextFiled 并将 textview 类更改为您的 TextPaste

在此处输入图像描述

于 2013-01-29T12:22:30.840 回答
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];
}
于 2013-01-21T08:32:27.110 回答
1

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

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

然后它将起作用

于 2013-01-21T08:48:10.750 回答
0

用这个

@implementation UITextFiels (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end
于 2013-01-21T07:57:00.257 回答