我想在UIWebView中添加像电子邮件一样的弹出按钮。在我的应用程序中,我创建了电子书
现在,只要我点击(长按)索引页链接,它就会在webView中创建弹出窗口窗口打开和复制按钮如下所示:
像这样我想放置另一个按钮,如电子邮件和打印。如何在WebView的弹出窗口中创建另一个按钮?提前感谢!
答案 0 :(得分:5)
您引用的弹出窗口称为UIMenuController
。您可以访问[UIMenuController sharedMenuController]
方法来获取菜单控制器。然后,您可以将自己的UIMenuItems
添加到菜单控制器。
UIMenuItem* myBtn1 = [[[UIMenuItem alloc] initWithTitle: @"Button 1" action:@selector( onButton1: )] autorelease];
UIMenuItem* myBtn2 = [[[UIMenuItem alloc] initWithTitle: @"Button 2" action:@selector( onButton2: )] autorelease];
UIMenuController* mc = [UIMenuController sharedMenuController];
mc.menuItems = [NSArray arrayWithObjects: myBtn1, myBtn2, nil];
现在实现方法
- (void) onButton1: (UIMenuController*) sender
{
}
- (void) onButton2: (UIMenuController*) sender
{
}
有关详细信息,请参阅apple's Doc.
修改强>
你可以实施Long Gesture
UILongPressGestureRecognizer* gr = [[[UILongPressGestureRecognizer alloc] initWithTarget: self action: @selector( onShowMenu: ) ] autorelease];
[_myview addGestureRecognizer: gr];
- (void) onShowMenu: (UIGestureRecognizer*) sender
{
[sender.view becomeFirstResponder];
UIMenuController* mc = [UIMenuController sharedMenuController];
CGRect bounds = sender.view.bounds;
[mc setTargetRect: sender.view.frame inView: sender.view.superview];
[mc setMenuVisible: YES animated: YES];
}
答案 1 :(得分:1)
您可以创建一个视图控制器,并在视图控制器的.xib文件中添加按钮。
然后你可以在UIPopover中调用那个viewcontroller并在其中加载那个视图控制器。
现在,您只想在索引页面中显示此弹出窗口,为此您必须跟踪页面形式为1-3的页面是索引页面,因此应该在该页面上看到popOver。 当你点击索引链接时,你可以使用webView委托函数,即
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
在此功能下,您可以应用逻辑并启动将会看到的弹出窗口