Im hablando sobre el menú que se muestra cuando se selecciona un bloque de texto se le da la opción de cortar/pegar/copiar. Me di cuenta de cómo agregar una opción más para el menú, pero si puedo agregar dos o más opciones, es decir «más» en primer lugar. clic en él para mostrar todas las opciones que he añadido. Pero hay una manera de mostrar todas las opciones que he añadido por adelantado? sin el «más» en el menú?

OriginalEl autor Melina | 2010-09-30

2 Comentarios

  1. 7

    Necesita usar un UIMenuController. Si no desea Copiar/Pegar/Cortar, voy a incluir algo como esto en su canPerformAction: método:

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

    La creación de un nuevo elemento de menú se parece a esto:

    UIMenuItem *someAction = [[UIMenuItem alloc]initWithTitle:@"Something" action:@selector(doSomething:)];
    
    UIMenuController *menu = [UIMenuController sharedMenuController];
    menu.menuItems = [NSArray arrayWithObject:someAction];
    [menu update];
    No es que yo no quiero esos. Tengo que añadir dos más elementos de menú.
    Después, usar algo como que he publicado, pero en lugar de hacer @selector(copiar:), cambiar a algo como @selector(copyText:), para luego implementar su propio – (void)copyText método que realiza la copia. A continuación, los demás artículos no dejes para el menú más.
    puedo cambiar el texto del elemento de menú?
    Sí, tú que por la creación personalizada de UIMenuItems- developer.apple.com/library/ios/#documentation/UIKit/Reference/…
    ¿podrías mostrarme un ejemplo? lo siento soy nuevo en obj-c.

    OriginalEl autor christo16

  2. 1

    Supongo hablar de su UIMenuController. Si usted no quiere ver, Copiar/Pegar/Cortar/Eliminar/Seleccionar/SelectAll será necesario agregar el siguiente código a su UITextField‘s o UITextView‘s delegado:

    - (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 item2 son los nombres de los objetos en UIMenuController.menuItems.

    En mi experiencia, si usted está usando un UITextView el Copiar, Pegar, Cortar y Seleccionar Todos los elementos de menú seguirá siendo, en este caso, agregue el código siguiente a una subclase de UITextView.

    - (BOOL) canPerformAction:(SEL)action withSender:(id)sender {
        if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:) || action == @selector(selectAll:)) {
                return YES;
        }
    }
    No quiero desactivar esas opciones, tengo que añadir dos más opciones de personalización.

    OriginalEl autor Joshua

Dejar respuesta

Please enter your comment!
Please enter your name here