2013-10-05 53 views
1

我有UIWebView。我需要從UIWebView中選擇一些文本。所以即時通訊使用MenuItem的UIMenuController。我需要在點擊按鈕時顯示UIMenuController。但它不起作用。如果我將代碼粘貼到ViewDidLoad中,它就可以工作。使用按鈕點擊顯示UIMenuController

代碼:

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

} 

回答

0

可能有點爲時已晚,因爲它是在兩年前提出,但如果有人 - 像我一樣 - 遇到:

你忘了做menuController可見。

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

在你結束時 - (void)show:(id)sender;方法應該做到了。

歡呼;)