menu contextual iPhone / iPad

Estoy hablando del menu que aparece cuando seleccionas un bloque de text, te da la opción de cortar / pegar / copyr. Me di count de cómo agregar una opción más al menu, pero si agrego dos o más opciones, dirá "más" primero. Al hacer clic en él, se mostrarán todas las opciones que agregué. ¿Pero hay alguna manera de mostrar todas las opciones que agregué por adelantado? sin el elemento del menu "más"?

Necesitas usar un UIMenuController . Si no desea copyr / pegar / cortar, includeá algo como esto en su método canPerformAction: :

 - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if(action == @selector(someSelector:)) return YES; else return NO; } 

Crear un nuevo elemento de menu se ve así:

 UIMenuItem *someAction = [[UIMenuItem alloc]initWithTitle:@"Something" action:@selector(doSomething:)]; UIMenuController *menu = [UIMenuController shanetworkingMenuController]; menu.menuItems = [NSArray arrayWithObject:someAction]; [menu update]; 

Supongo que hablas de UIMenuController . Si no desea ver Copiar / Pegar / Cortar / Borrar / Seleccionar / SeleccionarTodo tendrá que agregar el siguiente código al UITextField su UITextField o UITextView :

 - (BOOL)canPerformAction: (SEL)action withSender: (id)sender { BOOL answer = NO; if (action == @selector(item1)) { answer = YES; } if (action == @selector(item2)) { answer = YES; } return answer; } 

Donde item1 y item1 son los nombres de los objects en UIMenuController.menuItems .

En mi experiencia, si está utilizando un UITextView los UITextView del UITextView Copiar, Pegar, Cortar y Seleccionar Todo permanecerán, en este caso agregue el siguiente código a una subclass de UITextView .

 - (BOOL) canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:) || action == @selector(selectAll:)) { return YES; } }