2012-12-14 35 views

回答

1

您可以通過擴展UILabel類做到這一點。

MyLable.h

#import <UIKit/UIKit.h> 
@protocol MyLabelDelegate; 
@interface MYLabel : UILabel 

@property(nonatomic, unsafe_unretained) id<MyLabelDelegate> delegate; 
@end 

@protocol MyLabelDelegate <NSObject> 

-(void) label:(UILabel *) label didChangeText:(NSString *) string; 

@end 

我label.m

@implementation MYLabel 
@synthesize delegate = _delegate; 
- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

/* 
// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during animation. 
- (void)drawRect:(CGRect)rect 
{ 
    // Drawing code 
} 
*/ 

- (void)setText:(NSString *)text{ 
    [super setText:text]; 
    if([self.delegate respondsToSelector:@selector(label:didChangeText:)]){ 
     [_delegate label:self didChangeText:text]; 
    } 
} 
@end 

,您可以在您的視圖控制器實現MyLabel代表如果要檢測的變化有