0

uitextview クラスのメソッドをオーバーライドしようとしていますが、作業中のクラスでそれを行いたいのですが、動作させることができません。私は人々が別のクラスでそれをオーバーライドするのを見ただけです。ありがとうございました。

   #import <UIKit/UIKit.h>
@interface MyTextView : UITextView

@end
@interface ViewController : UIViewController
@property (nonatomic, retain) IBOutlet MyTextView * tv;

@end





//////////////////////////////////





   #import "ViewController.h"



@implementation MyTextView

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender    
{    
    [UIMenuController sharedMenuController].menuVisible = NO;  //do not display the menu
   // [self resignFirstResponder];                      //do not allow the user to selected anything
    return NO;
}

@end


@implementation ViewController
@synthesize tv;

- (void)viewDidLoad
{
    [super viewDidLoad];
    tv = [[MyTextView alloc] init];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}
-(void)textViewDidChangeSelection:(MyTextView *)textView
{
    NSRange range = textView.selectedRange;
    if(range.location<textView.text.length)
    {
        NSString * getRidOfFirstHalfString = [tv.text substringFromIndex:range.location];
        NSString * selectedString = [getRidOfFirstHalfString substringToIndex:range.length];


        NSLog(@"%@",selectedString);

    }
    else
    {
        // Do what ever you want to do

    }   
}
@end
4

1 に答える 1

1

あなたのクラスの一番上に置きます:

@interface MyTextView : UITextView

@end

@implementation MyTextView

- (xxx)overRidedMethod
{
    // do something
}

@end

... your class
{
    MyTextView *foo = [MyTextView alloc] init.....]
于 2012-07-25T00:17:35.587 に答える