UITextField扩展

删除前一输入的字符

@implementation UITextFieldBack

-(void)myDeleteBackward {

    if ([selfconformsToProtocol:@protocol(UITextInput)]){

        // iOS5 andlater

        [selfdeleteBackward];

        // Or dobelow line if you are not deploy-targeting 5.0 or above and want to avoidwarnings

        //[textFieldperformSelector:@selector(deleteBackward)];

    } else {

        @try{

            //checkcurrent selected range

            NSRangeselectedRange = [[self valueForKey:@"selectionRange"]rangeValue];

            if(selectedRange.location == NSNotFound){

                selectedRange = NSMakeRange([[selftext]length],0);

            }

            if(selectedRange.location < 1){

                return;

            }

           

            //deleteone char

            NSRangedeleteRange = (selectedRange.length >0) ? selectedRange : NSMakeRange(selectedRange.location - 1, 1);

            self.text = [self.textstringByReplacingCharactersInRange:deleteRangewithString:@""];

           

            //adjustthe selected range to reflect the changes

            selectedRange.location = deleteRange.location;

            selectedRange.length =0;

            [selfsetValue:[NSValuevalueWithRange:selectedRange]forKey:@"selectionRange"];

        } @catch(NSException *exception) {

            NSLog(@"deleteBackword failed but catched. %@",exception);

        } @finally{}

    }

}

@end

TextField只要有输入,马上清掉旧值


@interface UITextFieldEx :UITextField

{

     BOOL deleteFirst;

}

@property(nonatomic)BOOL deleteFirst;

@end

 

@implementation UITextFieldEx

@synthesize deleteFirst;

 

-(id)initWithFrame:(CGRect)frame

{

     self = [superinitWithFrame:frame];

     if (self) {

         deleteFirst =YES;

     }

     returnself;

}

@end

 

在textFieldDelegate中实现:

-(void)textFieldDidBeginEditing:(UITextField *)textField

{

     UITextFieldEx*field = (UITextFieldEx *)textField;

     field.deleteFirst=YES;

}

 

-(BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string

{

     UITextFieldEx*field = (UITextFieldEx *)textField;

     if(field.deleteFirst) {

        field.text=@"";

        field.deleteFirst=NO;

     }

     returnYES;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值