Отображение 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];
}
1 ответ
Возможно, слишком поздно, как это было задано два года назад, но если кто-то, как я, сталкивается:
Вы забыли сделать menuController видимым.
[[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];
в конце вас -(недействительно) показать:(id) отправителя; метод должен был сделать это.
ура;)