Apple_Magic
Apple_Magic

Reputation: 477

How to disable paste option in menucontroller in iOS?

I have to disable Paste option when user long press on UITextField.I have got this code but still it is not hiding Paste option.

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

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

    }
    return NO;  
}

Can any one help me?

Upvotes: 0

Views: 1488

Answers (4)

TonyMkenu
TonyMkenu

Reputation: 7667

As already said in comments.. you need to "include the exact same code in a subclass of UITextField and then use instances of that class"

so.. create new file .. let's say TestPaste.. subclass of UITextField

enter image description here

put your code in implementation file (TextPaste.m)

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

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

    }
    return NO;  
}

now. go to your NIB/Storyboard, click on your UITextFiled and change the textview class to your TextPaste

enter image description here

Upvotes: 4

Shubhank
Shubhank

Reputation: 21805

You have to create a new Class-> subclass of UITextField .. then in your code/xib change the textview class to your Custom Class.. and the add the method in your custom TextField class

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

It will work then

Upvotes: 1

trace
trace

Reputation: 21

Piya just check this below link :-

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

You can also check this code :-

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

Upvotes: 1

amar
amar

Reputation: 4343

Use this

@implementation UITextFiels (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end

Upvotes: 0

Related Questions