2013-04-01 17 views
11

UITextField come disabilitare la pasta?UITextField come disabilitare la pasta?

+0

Questa risposta è stata data da PengOne [PengOne] (http://stackoverflow.com/users/544050/pengone "PengOne") in questa domanda: http://stackoverflow.com/questions/6701019/ho w-to-disable-copy-paste-option-from-uitextfield-programmaticamente? rq = 1 –

+0

oh, mi dispiace, non ripeterò il problema dopo. promettere. – isaced

risposta

75

l'override del metodo canPerformAction:withSender: di tornare NO per le azioni che non si desidera consentire:

- (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]; 
    } 

Nel codice di cui sopra è necessario scrivere solo per pasta

Un altro modo

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

Controllare anche This link

a cura

In iOS 7, si può fare ad esempio come ,,

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

Per User Swift

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

    return true 
} 
+0

OK, grazie .... – isaced

+3

Non funziona in iOS 7 –

+1

Anche per me non funziona in iOS7. – CMVR

Problemi correlati