2011-12-26 122 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的委託功能該功能下,你可以申請你的邏輯,並開始將要看到