Отображение UIMenuController с помощью нажатия кнопки

У меня есть UIWebView. Мне нужно выбрать текст из UIWebView. Итак, я использую UIMenuController для MenuItem. Мне нужно отображать UIMenuController при нажатии кнопки. Но это не работает. Если я вставляю код внутри ViewDidLoad, он работает.

код:

[wbCont loadHTMLString:webString baseURL:nil];
    [self.view addSubview:wbCont];

    button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(80.0, 120.0, 160.0, 40.0);
        [button addTarget:self
                   action:@selector(show:)
         forControlEvents:UIControlEventTouchDown];
        [button setTitle:@"Shows" forState:UIControlStateNormal];
        [self.view addSubview:button];

-(void)show:(id)sender{


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

}

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


Ответы (1)


Возможно, немного поздновато, как было задано два года назад, но если кто-то, как я, наткнется:

Вы забыли сделать menuController видимым.

[[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];

в конце вы -(void)show:(id)sender; метод должен был сделать это.

ваше здоровье ;)

person telenaut    schedule 01.08.2016