iOS UITextField修改信息

//

//  SetNoteViewController.h

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/3/17.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//


#import "ParentsViewController.h"


@interface SetNoteViewController : ParentsViewController

扫描二维码关注公众号,回复: 12066483 查看本文章




@property (nonatomic,strong) UILabel * titleLabel;


@property (nonatomic) int  searchType;





@property (nonatomic,copy) NSString *NameField;



@property (nonatomic,copy) NSString * friendIDStr;







@end

//

//  SetNoteViewController.m

//  HengTaiXinGolf

//

//  Created by 欧阳荣 on 16/3/17.

//  Copyright © 2016 HengTaiXinGolf. All rights reserved.

//


#import "SetNoteViewController.h"




#define kHZMaxLength 15


#define kEGMaxLength 15





@interface SetNoteViewController ()


@end


@implementation SetNoteViewController

{

    UITextField * _nameField;

    

}


-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil];

    if (self)

    {

        

        //[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];

        UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0 , 100, 44)];

        titleLabel.backgroundColor = [UIColor clearColor];  //设置Label背景透明

        titleLabel.font = [UIFont boldSystemFontOfSize:KTitle];  //设置文本字体与大小

        titleLabel.textColor = [UIColor whiteColor];  //设置文本颜色

        titleLabel.textAlignment = NSTextAlignmentCenter;

        titleLabel.text = @"备注信息"//设置标题

        self.navigationItem.titleView = titleLabel;

        

    }

    return self;

}


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    self.view.backgroundColor=kColor(234, 234, 243);

    

    

    if (self.searchType == 1) {

        [self createBackBtn];

        

    }else{

        [self creatBackItem];

        [self createRightBtn];

        

    }

    

    [self creatSaveView];

    

    

}


//增加修改框

-(void)creatSaveView{

    

    

    

    UILabel * lab = [[UILabel alloc]init];

    

    if (self.searchType == 1) {

        lab.frame = CGRectMake(14, 8 * KWIDTH + 64, IPHONE_WIDTH - 100, 16 * KWIDTH);

    }else{

        lab.frame = CGRectMake(14, 8 * KWIDTH, IPHONE_WIDTH - 100, 16 * KWIDTH);

        

    }


    

    

    

    lab.text = @"备注名";

    lab.font = [UIFont systemFontOfSize:14];

    lab.textColor = kColor(137, 137, 137);

    

    [self.view addSubview:lab];

    

    

    

    

    

    

    UIView *view=[[UIView alloc] init];

    

    if (self.searchType == 1) {

        view.frame = CGRectMake(0, 32*KWIDTH + 64, IPHONE_WIDTH, 40*KWIDTH);

    }else{

        view.frame = CGRectMake(0, 32*KWIDTH, IPHONE_WIDTH, 40*KWIDTH);

        

    }

    


    

    

    

    UIView *lineViewlight3=[[UIView alloc] initWithFrame:CGRectMake(0,0, IPHONE_WIDTH, 0.5)];

    lineViewlight3.backgroundColor=kColor(200,200 , 200);

    lineViewlight3.alpha=0.8;

    [view addSubview:lineViewlight3];

    UIView *lineViewlight4=[[UIView alloc] initWithFrame:CGRectMake(0, 40*KWIDTH-0.5, IPHONE_WIDTH, 0.5)];

    lineViewlight4.backgroundColor=kColor(200,200 , 200);

    lineViewlight4.alpha=0.7;

    [view addSubview:lineViewlight4];

    view.backgroundColor=[UIColor whiteColor];

    _nameField = [[UITextField alloc]initWithFrame:CGRectMake(10*KWIDTH, 0, IPHONE_WIDTH-15*KWIDTH, 40*KWIDTH)];

    

    _nameField.text = self.NameField;

    _nameField.borderStyle = UITextBorderStyleNone;

    _nameField.clearButtonMode= UITextFieldViewModeAlways;

    

    

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)

                                                name:@"UITextFieldTextDidChangeNotification"

                                              object:_nameField];

    

    

    [view addSubview:_nameField];

    [self.view addSubview:view];

    

    

    

}



-(void)textFiledEditChanged:(NSNotification*)obj{

    UITextField *textField = (UITextField *)obj.object;

    

    //过滤掉系统表情

//    UITextView * textView;

//    

//    NSRange textRange = [textView selectedRange];

//    [textView setText:[self disable_emoji:[textView text]]];

//    [textView setSelectedRange:textRange];

    

    NSString *toBeString = textField.text;

    

    DSLog(@"-----toBeString  1  ----%@",toBeString);

    

    BOOL isEmoj = [self stringContainsEmoji:toBeString];

    NSString * _showStr;

    

    

    toBeString = [self disable_emoji:toBeString];

    

//    textField.text = toBeString;

    

    DSLog(@"-----toBeString   2  -----%@",toBeString);


    

    

    

    NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式

    if([lang isEqualToString:@"zh-Hans"]) { //简体中文输入,包括简体拼音,健体五笔,简体手写

        UITextRange *selectedRange = [textField markedTextRange];

        //获取高亮部分

        UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];

        //没有高亮选择的字,则对已输入的文字进行字数统计和限制

        if(!position) {

            if(toBeString.length > kHZMaxLength) {

                

             

                

                textField.text = [toBeString substringToIndex:kHZMaxLength];

               

                _showStr = [toBeString substringToIndex:kHZMaxLength];

            }

        }

        //有高亮选择的字符串,则暂不对文字进行统计和限制

        else{

            

        }

    }

    //中文输入法以外的直接对其统计限制即可,不考虑其他语种情况

    else{

        if(toBeString.length > kEGMaxLength) {

            

            

            

            textField.text= [toBeString substringToIndex:kEGMaxLength];

            

            _showStr = [toBeString substringToIndex:kEGMaxLength];

        }

    }

    

    DSLog(@"   _showStr   %@",_showStr);

    

    if (isEmoj) {

        

        if ([_showStr length]) {

            

            textField.text = _showStr;


        }else{

            textField.text = toBeString;

        }

        

    }

    

}


//判断NSString字符串是否包含emoji表情

- (BOOL)stringContainsEmoji:(NSString *)string

{

    __block BOOL returnValue =NO;

    [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {

        const unichar hs = [substring characterAtIndex:0];

        // surrogate pair

        if (0xd800) {

            if (0xd800 <= hs && hs <= 0xdbff) {

                if (substring.length > 1) {

                    const unichar ls = [substring characterAtIndex:1];

                    const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;

                    if (0x1d000 <= uc && uc <= 0x1f77f) {

                        returnValue =YES;

                    }

                }

            }else if (substring.length > 1) {

                const unichar ls = [substring characterAtIndex:1];

                if (ls == 0x20e3) {

                    returnValue =YES;

                }

            }else {

                // non surrogate

                if (0x2100 <= hs && hs <= 0x27ff) {

                    returnValue =YES;

                }else if (0x2B05 <= hs && hs <= 0x2b07) {

                    returnValue =YES;

                }else if (0x2934 <= hs && hs <= 0x2935) {

                    returnValue =YES;

                }else if (0x3297 <= hs && hs <= 0x3299) {

                    returnValue =YES;

                }else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {

                    returnValue =YES;

                }

            }

        }

    }];

    return returnValue;

}

#pragma Mark   ---  过滤表情


- (NSString *)disable_emoji:(NSString *)text

{

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]" options:NSRegularExpressionCaseInsensitive error:nil];

    NSString *modifiedString = [regex stringByReplacingMatchesInString:text

                                                               options:0

                                                                 range:NSMakeRange(0, [text length])

                                                          withTemplate:@""];

    return modifiedString;

}




//增加右键发表保存按钮

-(void)createRightBtn{

    

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

    btn.frame = CGRectMake(0, 0, 40, 20);

    

    [btn setTitle:@"完成" forState:UIControlStateNormal];

    [btn setFont:[UIFont systemFontOfSize:KTitle]];

    [btn addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithCustomView:btn];

    self.navigationItem.rightBarButtonItem = item;

    

}




-(void)rightBtnClicked{

    

    NSString *urlStr = [NSString stringWithFormat:KmodifyFriendNameRemark];

    

    if ([_nameField.text length] < 21 && [_nameField.text length]>=1) {

        

        [self setCustomizedClubInfoRequest:urlStr];

        

        

    }else if ([_nameField.text length]==0)

    {

//        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"不能为空" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

//        [alertView show];

        [self setCustomizedClubInfoRequest:urlStr];


    }

    

    else

    {

        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"超过字符限制" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];

        [alertView show];

        

        

    }

    

}


-(void)setCustomizedClubInfoRequest:(id)sender

{

    AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];

    man.responseSerializer = [AFHTTPResponseSerializer serializer];

    man.requestSerializer = [AFJSONRequestSerializer serializer];//json格式来上传参数

   

    NSString *paraString = [MD5 encodeString:_nameField.text];


    

    NSMutableDictionary *param = [NSMutableDictionary dictionary];

    

    [param setValue:KmemberId forKey:@"memberId"];

    

    [param setValue:self.friendIDStr forKey:@"friendId"];

    

    [param setValue:_nameField.text forKey:@"nameRemark"];

    

    

    [param setValue:KAPPID forKey:@"appId"];

    

    [param setValue:KappSecret forKey:@"appSecret"];

    

    [param setValue:[CommonTools getTimeScamp] forKey:@"timestamp"];

    

    

    [param setValue:[CommonTools tokenmd5StringFromArray:@[[NSString stringWithFormat:@"memberId%@",param[@"memberId"]],[NSString stringWithFormat:@"friendId%@",param[@"friendId"]],[NSString stringWithFormat:@"nameRemark%@",paraString],[NSString stringWithFormat:@"appId%@",param[@"appId"]],[NSString stringWithFormat:@"appSecret%@",param[@"appSecret"]],[NSString stringWithFormat:@"timestamp%@",param[@"timestamp"]]]] forKey:@"digest"];

    

    

    [man POST:sender parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];

        

        DSLog(@"--------dict------%@",dict);

        

        if ([dict[@"returnCode"]integerValue]==000000) {

            

            [WFHudView showMsg:@"好友备注修改成功!" inView:nil];

            

            

            [UserModel sharedInstance].isAddFriends = @"modifyFriendNameRemark";


            

            [[NSNotificationCenter defaultCenter]postNotificationName:@"AgreeMentAddFriend" object:nil];

            

            if (self.searchType == 1) {

                

                [self dismissViewControllerAnimated:NO completion:nil];

                

            }else{

                

                [self.navigationController popViewControllerAnimated:NO];

                

            }

            

        }else{

            

            [WFHudView showMsg:@"好友备注修改失败!" inView:nil];


        }

        

        

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"error %@",error);

    }];

}


-(void)createBackBtn{

    

    

    //自定义导航栏

    

    UIImageView *navImgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, IPHONE_WIDTH, 64)];

    navImgView.image = [UIImage imageNamed:@"top_bg"];

    [self.view addSubview:navImgView];

    //自定义导航栏标题

    self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(IPHONE_WIDTH/2-100, 5 , 200, 64)];

    self.titleLabel.text = @"备注信息";

    self.titleLabel.backgroundColor = [UIColor clearColor];  //设置Label背景透明

    self.titleLabel.font = [UIFont boldSystemFontOfSize:KTitle];  //设置文本字体与大小

    self.titleLabel.textColor = [UIColor whiteColor];  //设置文本颜色

    self.titleLabel.textAlignment = NSTextAlignmentCenter;

    [self.view addSubview:self.titleLabel];

    //返回键

    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];

    backBtn.frame = CGRectMake(6, 64/7 + 6, 40, 64*5/7);

    [backBtn setImage:[UIImage imageNamed:@"title_bar_back"] forState:UIControlStateNormal];

    [backBtn addTarget:self action:@selector(popViewController) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:backBtn];

    

    

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

    btn.frame = CGRectMake(IPHONE_WIDTH - 60, 27, 40, 20);

    [btn setTitle:@"完成" forState:UIControlStateNormal];

    

    btn.titleLabel.font = [UIFont systemFontOfSize:16];

    //    btn.titleLabel.textColor = [UIColor redColor];

    //    [btn setFont:[UIFont systemFontOfSize:KTitle]];

    [btn addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btn];

    

    

}




//创建返回按钮

-(void)creatBackItem{

    //    CGFloat frameY = 0.0f;

    UIBarButtonItem * leftItem = nil;

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

        //        frameY = 0.0f;

        leftItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"title_bar_back"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStyleDone target:self action:@selector(returnClicked)];

    } else {

        //        frameY = 0.0f;

        leftItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"title_bar_back"] style:UIBarButtonItemStyleDone target:self action:@selector(returnClicked)];

    }

    self.navigationItem.leftBarButtonItem = leftItem;

}


-(void)returnClicked {

    [self.navigationController popViewControllerAnimated:NO];

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end



猜你喜欢

转载自blog.csdn.net/qq_27247497/article/details/51169106