0
我想重寫uitextview類中的一個方法,我想在我正在工作的類中做到這一點,但我無法讓它工作。我只看到人們在一個單獨的課程中重寫它。謝謝。覆蓋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
我可以使用IBOutlet中 – BDGapps 2012-07-25 00:28:33
如果你把出口在實現文件中,那麼我相信IB會看到UITextView的子類。所以在IB中,您將把UITextView拖入畫布中。然後您需要將其類更改爲MyTextView。然後你可以做一個插座等 – 2012-07-25 00:31:23
好了,現在的作品,但我得到一個錯誤。你知道嗎?終止應用程序由於未捕獲的異常'NSRangeException',原因:'*** - [__ NSCFString substringFromIndex:]:範圍或索引超出範圍' – BDGapps 2012-07-25 01:37:15