簡體   English   中英

iPhone:UIWebView中的彈出按鈕

[英]iphone:Pop up button in UIWebView

我想在UIWebView中放置像電子郵件這樣的彈出按鈕。在我的應用程序中,我已經創建了電子書

在webView中,每當我單擊(長按)索引頁面鏈接時,它將創建彈出窗口

顯示打開和復制按鈕的窗口,如下所示: 在此處輸入圖片說明

像這樣我想放另一個按鈕,如電子郵件和打印。如何在WebView的彈出窗口中創建另一個按鈕?謝謝!

您引用的彈出窗口稱為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的文檔。

編輯

你可以實現長手勢

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

您可以創建一個View Controller,並且可以在View Controller的.xib文件中添加按鈕。

那么您可以在UIPopover ..中調用該viewcontroller並將其加載到其中。

現在,您只想在索引頁面中顯示此彈出窗口,為此,您必須跟蹤諸如表格1-3的頁面屬於索引頁面之類的頁面,因此應該在該頁面上看到popOver。 當您單擊索引鏈接時,可以使用webView委托函數,即

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

在此功能下,您可以應用邏輯並啟動將看到的彈出窗口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM