2010-08-21 10 views
14

que han creado un UIMenuController y han establecido que un elemento de menú personalizado, así:Artículos UIMenuController personalizados

UIMenuController *menuController = [UIMenuController sharedMenuController]; 
UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"Do This" action:@selector(item1)]; 
[menuController setMenuItems:[NSArray arrayWithObject:item1]]; 

pero quería ese objeto a ser el único que aparecerá por lo que añade este código:

- (BOOL)canPerformAction: (SEL)action withSender: (id)sender { 
    BOOL answer = NO; 

    if (action == @selector(item1)) 
     answer = YES; 

    return answer; 
} 

El problema es que todavía muestra otros ## Elementos de encabezado ##, como "Seleccionar", "Seleccionar todo" y "Pegar". Esto puede tener algo que ver con que esto se muestre en un UITextView. Pero, ¿cómo puedo detenerme si se muestran todos los demás elementos?

Respuesta

16

Creo que este es uno de los pocos casos en los que desea subclase UITextView. Acabo de probar esto con el siguiente código, y el único elemento de menú que se muestra es mi artículo Do Something.

Desde mi TestViewController.m

@implementation TestViewController 

- (void) doSomething: (id) sender 
{ 
    NSLog(@"Doing something"); 
} 

- (void) viewDidLoad 
{ 
    UIMenuController *menuController = [UIMenuController sharedMenuController]; 
    UIMenuItem *item = [[[UIMenuItem alloc] initWithTitle: @"Do Something" 
     action: @selector(doSomething:)] autorelease]; 
    [menuController setMenuItems: [NSArray arrayWithObject: item]]; 
} 

@end 

Código para mi MyTextView.h:

// MyTextView.h 

#import <UIKit/UIKit.h> 

@interface MyTextView :UITextView { 

} 

@end 

Código de MyTextView.m:

// MyTextView.m 

#import "MyTextView.h" 

@implementation MyTextView 

- (BOOL) canPerformAction:(SEL)action withSender:(id)sender 
{ 
    return NO; 
} 

@end 
+0

impresionante, muchas gracias! – Joshua

+0

@Joshua, ¿resolvió su problema con este código? ¿Puedes compartirme sobre esto, porque intento esta respuesta, pero el problema aún no está resuelto? @ St3fan, ¿tienes alguna otra sugerencia para mí? –

+0

no funcionó. aún copiar, pegar – BDGapps

Cuestiones relacionadas