2011-12-26 11 views
5

chcę umieścić pop-up przycisk jak poczta w UIWebView.In moją aplikację Stworzyłem ebookiPhone: Pop up przycisku w UIWebView

w Webview teraz gdy klikam (długie naciśnięcie) na link strony indeksu Stworzy wyskakujące

okno z przyciskiem otwartego i kopię jako shwon jak poniżej: enter image description here

jak to chcę umieścić inny przycisk jak e-mail i Print.How stworzyć inny przycisk w wyskakującym oknie w WebView Dzięki z góry!

Odpowiedz

5

Wyświetlane wyskakujące okienko nazywa się UIMenuController. Możesz uzyskać dostęp do metody [UIMenuController sharedMenuController], aby uzyskać kontroler menu. Następnie można dodać do kontrolera menu swoją własną 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]; 

Teraz realizowania sposobów

- (void) onButton1: (UIMenuController*) sender 
{ 
} 

- (void) onButton2: (UIMenuController*) sender 
{ 
} 

Więcej szczegółów patrz apple's Doc.

Edycja

można zaimplementować Długi Gest

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

Ale w jaki sposób można zidentyfikować długie naciśnięcie event? Bcoz webview ma wbudowaną funkcjonalność do tworzenia przycisku otwierania i kopiowania poprzez naciśnięcie (Long press) na łączu. – Developer

+0

sprawdź zaktualizowaną odpowiedź – Maulik

+0

w metodzie onShowMenu możesz utworzyć własne przyciski. – Maulik

1

można utworzyć kontroler widoku, aw pliku kontrolera widoku .xib można dodać przyciski.

następnie można wywołać ten viewcontroller w UIPopover .. i załadować kontroler widoku w nim.

Teraz, gdy chcesz pokazać ten popover tylko na stronie indeksu, musisz zachować ścieżkę stron, takich jak strony od 1-3 do strony indeksu, tak aby popover był widoczny na tej stronie. i po kliknięciu na link indeksu można użyć funkcji Webview delegata tj

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

ramach tej funkcji można zastosować logikę i zainicjować popover że będzie widział

Powiązane problemy