Всплывающее окно, на которое вы ссылаетесь, называется 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.
Редактировать
вы можете реализовать Long Жест
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];
}
Но как я могу определить Long Press событие? Bcoz webview имеет встроенную функциональность для создания кнопки «Открыть» и «Копировать», нажав (Длительное нажатие) по ссылке. – Developer
проверить обновленный ответ – Maulik
в методе onShowMenu вы можете создавать свои пользовательские кнопки. – Maulik