2013-04-01 21 views
11

UITextField macunu nasıl devre dışı bırakabilirim?UITextField macunu nasıl devre dışı bırakabilirim?

+0

Bu cevap PengOne tarafından verildi [PengOne] (http://stackoverflow.com/users/544050/pengone "PengOne") bu soruda: http://stackoverflow.com/questions/6701019/ho w-to-disable-copy-paste-option-from-uitextfield-programatik olarak? rq = 1 –

+0

oh, üzgünüm, daha sonra sorunu tekrar etmeyeceğim. söz vermek. – isaced

cevap

75

izin vermek istemiyoruz eylemler için NO dönmek için canPerformAction:withSender: yöntemini geçersiz kılar: Yalnızca macun

bir başka yolu için yazmak gerekir Üstü Code

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

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

Ayrıca'u da denetleyin

iOS 7'de

EDITED, sen Swift Kullanıcı için ,, böyle gibi

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

yapabilirsiniz

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

    return true 
} 
+0

Tamam, Teşekkür ederim .... – isaced

+3

iOS 7'de çalışmıyor –

+1

Bu, iOS7'de benim için de çalışmıyor. IOS'ta – CMVR

İlgili konular