2010-08-21 8 views
14

मैं एक UIMenuController बनाया है और इसलिए है कि यह एक कस्टम मेनू आइटम स्थापित किया है:UIMenuController कस्टम आइटम

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

लेकिन मैं उस वस्तु चाहता था मैं इस कोड जोड़ा तो प्रकट करने के लिए केवल एक ही होने के लिए:

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

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

    return answer; 
} 

समस्या यह है कि यह अभी भी अन्य ## शीर्षक ## आइटम, जैसे "चयन करें", "सभी का चयन करें" और "पेस्ट" दिखाता है। UITextView में प्रदर्शित होने के साथ इसका कुछ संबंध हो सकता है। लेकिन अगर मैं अन्य सभी वस्तुओं को प्रदर्शित करने से रोकूं तो मैं कैसे रोकूं?

उत्तर

16

मुझे लगता है कि यह उन कुछ मामलों में से एक है जहां आप UITextView उपclass करना चाहते हैं। मैंने बस निम्न कोड के साथ यह कोशिश की, और दिखाया गया एकमात्र मेनू आइटम मेरा कुछ आइटम करें।

मेरी 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 

कोड से मेरी MyTextView.h के लिए:

// MyTextView.h 

#import <UIKit/UIKit.h> 

@interface MyTextView :UITextView { 

} 

@end 

MyTextView.m के लिए कोड:

// MyTextView.m 

#import "MyTextView.h" 

@implementation MyTextView 

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

@end 
+0

बहुत बढ़िया, बहुत बहुत धन्यवाद! – Joshua

+0

@ जोशुआ, क्या आपने इस कोड के साथ अपनी समस्या हल की है? क्या आप मुझे इसके बारे में साझा कर सकते हैं, क्योंकि मैं इस जवाब को आजमाता हूं, लेकिन समस्या अभी भी हल नहीं हुई है @ St3fan, क्या आपके पास मेरे लिए एक और सुझाव है? –

+0

यह काम नहीं किया। अभी भी कॉपी करें, चिपकाएं – BDGapps

संबंधित मुद्दे