Удалить копию и определить из UIMenuController

У меня есть UIWebView для отображения некоторых статей. Мне нужно выбрать текст из UIWebView и использовать закладку. Итак, я использую selection = [wbCont stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; Но когда я долго нажимаю, UIMenuItem отображается с копией, определите. Я прочитал какой-то документ и использовал canPerformAction: копию НЕТ. Но все же это отображается.

- (void)viewDidLoad
{
[wbCont loadHTMLString:webString baseURL:nil];
    [self.view addSubview:wbCont];
 NSMutableArray *items = [[[UIMenuController sharedMenuController] menuItems] mutableCopy];
    if (!items) items = [[NSMutableArray alloc] init];

    UIMenuItem *menuItem;
    menuItem = [[UIMenuItem alloc] initWithTitle:@"BookMark" action:@selector(book:)];
    [items addObject:menuItem];
    [menuItem release];
    menuItem = [[UIMenuItem alloc] initWithTitle:@"Note" action:@selector(note:)];
    [items addObject:menuItem];
    [menuItem release];

   [[UIMenuController sharedMenuController] setMenuItems:items];


    [items release];
}



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


 if (action == @selector(copy:))
 {

 return NO;

 }
    if (action == @selector(book:))
    {
        return YES;
    }
    else if (action == @selector(note:))
    {
        return YES;
    }

    return [super canPerformAction:action withSender:sender];


}

person user2807197    schedule 10.10.2013    source источник


Ответы (1)


Вы должны создать подкласс UIWebView. (Создайте новый класс Objective-C и выберите подкласс UIWebView).

В вашем подклассе напишите метод:

- (BOOL) canPerformAction:(SEL)action withSender:(id)sender{
 if (action == @selector(copy:))
 {

 return NO;

 }
    return [super canPerformAction:action withSender:sender];
}

Вам не нужно устанавливать там свои собственные селекторы, если вы добавляете их внутри своего контроллера (поскольку я предполагаю, что именно это вы и делаете).

Более подробную информацию можно найти здесь: Как вы ДЕЙСТВИТЕЛЬНО удаляете Копировать из UIMenuController

person Francisco Vera    schedule 02.04.2014