2011-12-26 145 views
5

我希望把web视图弹出像电子邮件按钮UIWebView.In我的应用程序我创建电子书iphone:弹出按钮的UIWebView

现在每当我点击(长按)的索引页链接它会创建弹出

窗口打开,复制按钮,shwon如下:? enter image description here

喜欢我希望把像电子邮件和Print.How另一个按钮来创建的WebView在弹出窗口中的另一个按钮谢谢提前!

回答

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.

编辑

可以实现长手势

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]; 
} 
+0

但如何才能辨别长按酥料饼事件?Bcoz webview具有内置功能,通过按下(长按)链接创建打开和复制按钮。 – Developer 2011-12-26 05:43:44

+0

在onShowMenu方法中检查更新的答案 – Maulik 2011-12-26 05:50:43

+0

您可以创建自定义按钮。 – Maulik 2011-12-26 05:51:53

1

您可以创建视图控制器,并在视图控制器的.xib文件中添加按钮。

然后您可以在UIPopover....中调用该视图控制器并加载其中的视图控制器。

现在,您只需要在索引页面中显示此弹出窗口,为此,您必须保留页面的跟踪页面,表格1-3是索引页面的页面,因此popOver应该在该页面上显示。 ,当你点击索引链接,您可以使用即

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

的webView的委托功能该功能下,你可以申请你的逻辑,并开始将要看到