2010-08-21 12 views
14

mi hanno creato un UIMenuController e hanno stabilito che una voce di menu personalizzato in questo modo:UIMenuController personalizzati Articoli

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

Ma volevo quell'oggetto ad essere l'unico ad apparire così ho aggiunto questo codice:

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

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

    return answer; 
} 

Il problema è che mostra ancora altri articoli ## Intestazione ##, come "Seleziona", "Seleziona tutto" e "Incolla". Questo potrebbe avere qualcosa a che fare con questo essere visualizzato in un UITextView. Ma come posso smettere di visualizzare tutti gli altri oggetti?

risposta

16

Penso che questo sia uno dei pochi casi in cui si desidera creare una sottoclasse di UITextView. Ho appena provato questo con il seguente codice, e l'unica voce di menu che viene mostrata è il mio articolo Do Something.

Dal mio 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 

Codice per il mio MyTextView.h:

// MyTextView.h 

#import <UIKit/UIKit.h> 

@interface MyTextView :UITextView { 

} 

@end 

Codice per MyTextView.m:

// MyTextView.m 

#import "MyTextView.h" 

@implementation MyTextView 

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

@end 
+0

impressionante, grazie mille! – Joshua

+0

@Joshua, hai risolto il tuo problema con questo codice? puoi parlarmi di questo, perché provo questa risposta, ma il problema non è ancora risolto @ St3fan, hai un altro suggerimento per me? –

+0

non ha funzionato. ancora copiare, incollare – BDGapps

Problemi correlati