iOS之UI学习-UITextField代理篇

</pre><pre name="code" class="objc">#import "ViewController.h"

//签订代理协议
@interface ViewController ()<UITextFieldDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //须知:UITextField继承于UIcontrol,而UITextView继承于UIScrollView,UIScrollView又继承于UIView

    //创建输入框
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 50, 280, 100)];
    //设置输入框的边框样式
    textField.borderStyle = UITextBorderStyleRoundedRect;
    //设置当前对象为输入框的代理
    textField.delegate = self;
    //右侧的删除按钮
    textField.clearButtonMode = UITextFieldViewModeAlways;
    //添加到当前视图
    [self.view addSubview:textField];
    //因为UITextField继承于UIcontrol,所以可以进行如下操作,此操作可以用于控制输入框内的文本的长度和输入限制
    [textField addTarget:self action:@selector(pick) forControlEvents:UIControlEventEditingChanged];
}

- (void)pick{

    NSLog(@"文本内容改变了");
}

#pragma mark - UITextFieldDelegate
//是否允许输入框可以进行编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{

    //返回YES表示可以进行编辑,返回NO表示不可以
    return YES;
}

//became first responder (成为第一响应者,显示键盘)
- (void)textFieldDidBeginEditing:(UITextField *)textField{

   //一旦进行编辑变回响应的方法
}

//返回YES表示允许停止编辑并收起键盘,返回NO则表示不允许停止编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{

    return YES;
}

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

    //一旦结束编辑响应的方法
}

//此方法在内容改变的时候调用,限制输入框的内的文本的长度
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

//    //限制输入框的内的文本的长度,当长度大于等于10的时候,文本长度不会增加,也不能进行删除操作
    if (textField.text.length >= 10){
        return NO;
    }else{
        return YES;
    }
}

//当删除按钮存在的情况下,用此方法控制按钮是否有效,默认是可以进行删除的
- (BOOL)textFieldShouldClear:(UITextField *)textField{

    return NO;
}

//点击return键的响应事件
- (BOOL)textFieldShouldReturn:(UITextField *)textField{

    //注销第一响应者,收起键盘
    [textField resignFirstResponder];
    return YES;
}

@end

开发中,UITextField的使用频率还是比较高的,例如一般的帐号登录等都用到的是UITextField,一般的程序都会存在对输入的内容和长度的限制的需求,这需要我们在熟知UITextField的相关属性和各种代理事件的前提下进行操作。

欢迎加入 qq群名称:iOS小圈子
群号码:177204933;一同在iOS开发之路上进步与成长。

时间: 2024-10-07 10:08:00

iOS之UI学习-UITextField代理篇的相关文章

iOS学习-UITextField代理

1 // 2 // ViewController.m 3 // UITextField代理 4 // 5 // Created by 大欢 on 16/1/22. 6 // Copyright © 2016年 bjsxt. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 @interface ViewController ()<UITextFieldDelegate> 12 13 @propert

iOS开篇——UI之UITextField

创建文本输入框 UITextField * textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 50, 250, 40)]; 设置边框样式 textField.borderStyle = UITextBorderStyleRoundedRect; /* typedef NS_ENUM(NSInteger, UITextBorderStyle) { UITextBorderStyleNone, 无效果 UITextBorderS

iOS开发-UI (五)UITextField

UITextField使用 1.创建方式 例: UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; 2.常用方法和属性 1)边框样式 @property(nonatomic)  UITextBorderStyle   borderStyle; UITextBorderStyleNone                       没有边框,背景默认为透明 UITextBorderS

Snail—UI学习之代理传值Delegate

代理就是自己的事让别人来做 在OC中就是协议方要做的事给代理方来实现 背景情况 A父界面 B子界面 当B返回A的时候 要让A的背景颜色变为红色 这就要给A传一个color的参数 写两个ViewController 在RootViewController.h中写 #import <UIKit/UIKit.h> #import "WJJFirstViewController.h" <span style="color:#FF0000;">//4.

学习IOS开发UI篇--UI知识点总结(一) UIButton/UITextField

UIkit框架下的几个基本控件,UIButton,UITextField,UILabel,UIImageView,UIScrollView,UITableView,UITableViewCell,UIPageControl; 他们的继承关系,UILabel,UIImageView,UIScrollView,UITableViewCell,直接继承自UIView; UIButton,UITextField,UIPageControl,继承自UIControl; UIControl继承自UIView

学习IOS开发UI篇--UI知识点总结(四) UITabelView/UITableViewCell

UITabelView:常用属性 @property (nonatomic)          CGFloat    rowHeight;             // will return the default value if unset @property (nonatomic)          CGFloat     sectionHeaderHeight;   // will return the default value if unset @property (nonatom

学习IOS开发UI篇--UI知识点总结(三) UIScrollView/UIPageControl/NSTimer

UIScrollView:常用属性 @property(nonatomic)   UIEdgeInsets     contentInset;               // default UIEdgeInsetsZero. add additional scroll area around content @property(nonatomic,getter=isPagingEnabled) BOOL   pagingEnabled;     // default NO. if YES,

学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer

1.UIscrollView的属性 ================================================== 1.1 常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远) @property(nonatomic) UIE

学习IOS开发UI篇--UIAlertView/UIActionSheet

UIAlertView,UIActionSheet都是系统的弹框 UIAlertView:创建方法 - (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id /*<UIAlertViewDelegate>*/)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherBu