2013-11-18 2 views
0

Я хочу отключить меню копирования/вырезания текстовой области, чтобы предотвратить экспорт любых данных из приложения. Я поместил следующий код в файл apps/<AppName>/iphone/native/Classes/CDVMainViewController.m, но он не сработал. Кажется, canPerformAction вызывается, когда появляется меню, но действия cut/copy не передаются этому коду.IBM Worklight 6.0 - Как отключить параметры копирования/вставки MainView/WebView?

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    BOOL can = [super canPerformAction:action withSender:sender]; 
    if (action == @selector(cut:) || action == @selector(copy:)) 
    { 
    can = NO; 
    } 
    NSLog(@"%@ for action:%@ from sender:%@.", 
    can ? @"YES" : @"NO", NSStringFromSelector(action), sender); 
    return can; 
} 

Как отключить эти параметры?

+0

Вы рассматривали другие вопросы и ответы для альтернативных реализаций? См. Здесь: https://www.google.com/search?q=ios+disable+copy+paste&oq=ios+disable+copy+paste –

+0

Ответ дан здесь - http://stackoverflow.com/questions/5995210/disabling-user-selection-in-uiwebview – Anton

+0

Спасибо Антон. С помощью метода Swizzle (в ответе Альтаверана) я сделал то, что хотел. Кстати, почему мой предыдущий код не работал в Worklight? Есть ли у вас какие-либо идеи? – Takakiyo

ответ

0

Как Антон указал в комментариях на вопрос, взглянуть на этот вопрос для возможных решений: Disabling user selection in UIWebView

Вот несколько из него:

Via CSS:

textarea { 
     -webkit-touch-callout: none; 
     -webkit-user-select: none; /* Disable selection/copy in UIWebView */ 
    } 

Через собственный код (хотя я считаю, что это может быть не только для текстового поля, но и для всего экрана приложения, но вы можете его изменить):

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
    {  
     if (action == @selector(copy:) || 
      action == @selector(paste:)|| 
      action == @selector(cut:)) 
     { 
      return _copyCutAndPasteEnabled; 
     } 
     return [super canPerformAction:action withSender:sender]; 
    } 
Смежные вопросы