2011-12-26 27 views
5

quiero poner pop-up botón de correo electrónico en mi aplicación UIWebView.In he creado ebookiPhone: pop botón en UIWebView

en web View ahora cada vez que haga clic (pulsación larga) en el enlace página de índice se creará el pop-up

ventana con botón de apertura y copiar como shwon de la siguiente manera:? enter image description here

como no quiero poner otro botón como el correo electrónico y Print.How para crear otro botón en la ventana emergente en la vista Web Gracias ¡por adelantado!

Respuesta

5

La ventana emergente a la que se refiere se llama UIMenuController. Puede acceder al método [UIMenuController sharedMenuController] para obtener el controlador de menú. A continuación, puede agregar su propio UIMenuItems al controlador de menú.

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

Ahora implementar los métodos

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

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

Para más detalles consulte apple's Doc.

Editar

se puede implementar a largo Gesto

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

Pero, ¿cómo puedo identificar largo Press evento? Bcoz webview tiene una función incorporada para crear abrir y copiar presionando (Pulsación larga) en el enlace. – Developer

+0

compruebe la respuesta actualizada – Maulik

+0

en el método OnShowMenu puede crear sus botones personalizados. – Maulik

1

puede crear un controlador de vista, y en el archivo .xib del controlador de vista puede agregar sus botones.

luego puede llamar a ese controlador de vista en el UIPopover ... y cargar ese controlador de vista en él.

Ahora, como desea mostrar este popover en la página de índice solamente, para esto debe mantener un seguimiento de las páginas como las páginas del 1 al 3 son de página de índice por lo que el popOver debe verse en esa página. y al hacer clic en el enlace del índice que se puede utilizar la función web View delegado es decir

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

en esta función se puede aplicar la lógica e iniciar el popover que será visto

Cuestiones relacionadas