UITextFeild协议方法


//
//  AppDelegate.m
//  07 - UITextFeild协议方法
//
//  Created by 余婷 on 16/4/8.
//  Copyright (c) 2016年 余婷. All rights reserved.
//

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = [[UIViewController alloc] init];
    self.window.rootViewController.view.userInteractionEnabled = NO;
    
    //==================================
    //1.创建textField对象
    UITextField * field = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 200, 60)];
    //设置边框
    [field setBorderStyle:UITextBorderStyleRoundedRect];
    
    
    field.tag = 10;
    //显示在界面上
    [self.window addSubview:field];
    
    
    //1.创建textField对象
    UITextField * field2 = [[UITextField alloc] initWithFrame:CGRectMake(100, 250, 200, 60)];
    //设置边框
    [field2 setBorderStyle:UITextBorderStyleRoundedRect];
    
    field2.tag = 20;
    
    //显示在界面上
    [self.window addSubview:field2];
    
    
    
    //2.设置代理
    //把点前对象作为field的代理,那么必须self的类去遵守协议实现协议方法
    field.delegate = self;
    field2.delegate = self;
    
    //3.显示清除按钮
    [field setClearButtonMode:UITextFieldViewModeAlways];
    

    
    [self.window makeKeyAndVisible];
    return YES;
}

#pragma mark - UITextField Delegate
//当用户点击textField弹出的系统键盘上返回键的时候会调用这个方法
//返回值:是否返回
//参数:委托
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    
    //设置委托的背景颜色
    textField.backgroundColor = [UIColor yellowColor];
    
    
    //textField放弃第一响应者 (收起键盘)
    //键盘是textField的第一响应者
    [textField resignFirstResponder];
    
    return YES;
}


//当文本输入框已经开始编辑的时候会调用这个方法
- (void)textFieldDidBeginEditing:(UITextField *)textField{
    
    if (textField.tag == 10) {
       NSLog(@"第一个已经开始编辑");
    }else{
       NSLog(@"第二个已经开始编辑");
    }
 
}

//当文本输入框已经停止编辑的时候会调用这个方法
//两种停止编辑的情况:1.放弃第一响应者  2.点击了其他的输入框
- (void)textFieldDidEndEditing:(UITextField *)textField{

    NSLog(@"已经停止编辑");
    
}


//返回值:是否通过点击的键盘的按钮的值,去改变textField的text值
//参数1:委托
//参数2:当前输入字符的位置
//参数3:当前输入的字符(以字符串形式返回)
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    
    NSLog(@"%@", NSStringFromRange(range));
    NSLog(@"%@", string);
    
    //按'a'收起键盘
    if ([string isEqualToString:@"a"]) {
        
        [textField resignFirstResponder];
    }

    return YES;
    
}


#pragma mark - 以下方法基本不用,知道就行了

//设置输入框是否可以开始编辑(默认是YES)
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    return YES;
    
}
//设置输入框是否可以停止编辑 (默认是YES)
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{

    return YES;
}

//设置清除按钮是否可用
- (BOOL)textFieldShouldClear:(UITextField *)textField{

    return YES;
}





@end



你可能感兴趣的:(UITextFeild协议方法)