2013-04-01 19 views
11

UITextField jak wyłączyć wklejanie?UITextField jak wyłączyć wklejanie?

+0

Ta odpowiedź została udzielona przez PengOne [PengOne] (http://stackoverflow.com/users/544050/pengone "PengOne") w tym pytaniu: http://stackoverflow.com/questions/6701019/ho w-to-disable-copy-paste-option-from-uitextfield-programowo? rq = 1 –

+0

oh, przepraszam, nie powtórzę problemu później. obietnica. – isaced

Odpowiedz

75

przesłania metodę canPerformAction:withSender: powrotu NO dla działań, które nie chcą, aby umożliwić:

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

W powyższym kodzie trzeba pisać tylko dla pasty

Innym sposobem

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    UIMenuController *menuController = [UIMenuController sharedMenuController]; 
    if (menuController) { 
     [UIMenuController sharedMenuController].menuVisible = NO; 
    } 
    return NO; 
} 

Sprawdź również This link

EDITED

w iOS 7 można zrobić takie jak ,,

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
     [[UIMenuController sharedMenuController] setMenuVisible:NO animated:NO]; 
    }]; 
    return [super canPerformAction:action withSender:sender]; 
} 

Dla Swift Użytkownika

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 
    if action == #selector(copy(_:)) || action == #selector(paste(_:)) { 
     return false 
    } 

    return true 
} 
+0

OK, dziękuję .... – isaced

+3

Nie działa w systemie iOS 7 –

+1

To również nie działa w iOS7. – CMVR