美文网首页与时俱进的IT
UI(五)键盘设置UITextField

UI(五)键盘设置UITextField

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 17:43 被阅读0次

    要使用输入框的代理方法

    1、导入代理名字

    2、挂上代理->如果代理方法不触发,说明没有挂上代理

    3、实现代理的方法

     1.导入代理的名字

    @interface AppDelegate ()

    @end

    @implementation AppDelegate

     UITextField:->UIControl的子类->UIView的子类

     UITextField:文本输入框

     它的属性⬇️⬇️⬇️⬇️⬇️

     keyboardType:键盘的样式

    {UIKeyboardTypeDefault,

     UIKeyboardTypeASCIICapable,

     UIKeyboardTypeNumbersAndPunctuation,

     UIKeyboardTypeURL,

     UIKeyboardTypeNumberPad,

    UIKeyboardTypePhonePad, 电话类型 1-9

     UIKeyboardTypeNamePhonePad,

    UIKeyboardTypeEmailAddress, 邮箱地址

     UIKeyboardTypeDecimalPad

     UIKeyboardTypeTwitter

    UIKeyboardTypeWebSearch 网页搜索 有小地球样式

     UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,

    }

     text:可以获得或者改变输入框的内容

     borderStyle:输入框的样式

     {UITextBorderStyleNone,没有样式

     UITextBorderStyleLine,黑线边框

     UITextBorderStyleBezel,带阴影的黑线

    UITextBorderStyleRoundedRect 圆角}

     placeholder:提示文字(例如输入框里面的“请输入密码”)

     textColor:颜色

     font:字号

     textAlignment:对齐方式

     adjustsFontSizeToFitWidth:让文字根据宽度自动适配

     minimumFontSize:设置文字的最小字号

     ✅✅✅delegate:代理

     {

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

     //只要开始就会调用

    - (void)textFieldDidBeginEditing:(UITextField *)textField;

     //编辑结束的时候使用 必须return YES;才能使用

    - (BOOL)textFieldShouldEndEditing:(UITextField *)textField;

     //编辑结束的时候使用

    - (void)textFieldDidEndEditing:(UITextField *)textField;

     //可以获得用户每输入一次的文字及位置,必须return YES;才能使用

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

     //点击清除按钮的时候调用 必须return YES;才能使用

    - (BOOL)textFieldShouldClear:(UITextField *)textField;

     //当点击Return键的时候会触发

    - (BOOL)textFieldShouldReturn:(UITextField *)textField;

     }

     clearButtonMode:设置清除按钮什么时候显示

     {UITextFieldViewModeNever, 永远都不显示

     UITextFieldViewModeWhileEditing, 当编辑的时候显示

    UITextFieldViewModeUnlessEditing, 当不在编辑的时候显示

    UITextFieldViewModeAlways 永远显示}

     leftView:左侧的视图->输入框左侧的视图----并不是设置了左侧右侧视图就可以显示出来,需要配合使用下面属性

     leftViewMode:设置什么情况下显示左侧的视图,跟上面清除按钮类似

     inputView:键盘上面的视图(例如输入法的表情按钮区域)

     inputAccessoryView:键盘区域的视图

     键盘的方法(代理方法)⬇️⬇️⬇️⬇️⬇️写出来就自动调用

     ©开始编辑的时候调用

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

    - (void)textFieldDidBeginEditing:(UITextField*)textField;

     ©结束编辑的时候调用

    - (BOOL)textFieldShouldEndEditing:(UITextField *)textField;

    - (void)textFieldDidEndEditing:(UITextField*)textField;

     ©文字内容发生改变的时候

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

     ©点击清除按钮的时候调用

    - (BOOL)textFieldShouldClear:(UITextField*)textField;

     ©点击Return键的时候调用

    - (BOOL)textFieldShouldReturn:(UITextField *)textField;

     专为输入框准备的响应事件⬇️⬇️⬇️⬇️⬇️

     UIControlEventEditingDidBegin          UIControlEventEditingChanged           UIControlEventEditingDidEnd            UIControlEventEditingDidEndOnExit        

     注意点:

     1、如果想使用代理方法,必须先导入代理

     2、如果代理方法没有触发,看是否挂上了代理

     在使用左右侧视图的时候,要配合左右侧视图的model来使用

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [self.window makeKeyAndVisible];

    UITextField *accTextField = [[UITextField alloc]initWithFrame:CGRectMake(10, 40, CGRectGetWidth([UIScreen mainScreen].bounds)-20,40)];

    [self.window addSubview:accTextField];

    //    accTextField.backgroundColor = [UIColor brownColor];

     //设置输入框样式

        accTextField.borderStyle = UITextBorderStyleBezel;

     //提示文字

    accTextField.placeholder = @"请输入文字";

     //清除按钮

        accTextField.clearButtonMode = UITextFieldViewModeWhileEditing;

     //设置一个视图

    UIImageView *leftImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];

     [self.window addSubview:leftImageView];

     //设置一张图片

    leftImageView.image = [UIImage imageNamed:@"left"];

        accTextField.leftView = leftImageView;

        accTextField.leftViewMode = UITextFieldViewModeAlways;

     //键盘的样式

        accTextField.keyboardType = UIKeyboardTypeAlphabet;

    UIView *inputV = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth([UIScreen mainScreen].bounds), 40)];

        inputV.backgroundColor = [UIColor brownColor]; 

    [self.window addSubview:inputV];

     accTextField.inputView = inputV;

        accTextField.inputAccessoryView = inputV;

     //2、想使用代理方法 必须挂上代理***

    accTextField.delegate = self;

    return YES;

    }

    //3、实现代理的方法

    //可以获得用户每输入一次的文字及位置,必须return YES;才能使用

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    NSLog(@"%@",string);

     return YES;

    }

    //点击清除按钮的时候调用

    - (BOOL)textFieldShouldClear:(UITextField *)textField{

        NSLog(@"清除");

     return YES;

    }

    - (void)textFieldDidBeginEditing:(UITextField *)textField{

        NSLog(@"开始");

    }

    //编辑结束的时候使用

    - (void)textFieldDidEndEditing:(UITextField *)textField{

    NSLog(@"%@",textField.text);

    }

    - (BOOL)textFieldShouldReturn:(UITextField *)textField{

     //回收键盘->输入结束

        [textField resignFirstResponder];

    NSLog(@"%@",textField.text);

     return YES;

    }

    相关文章

      网友评论

        本文标题:UI(五)键盘设置UITextField

        本文链接:https://www.haomeiwen.com/subject/msafvftx.html