文档章节

IOS开发之UITextField的协议方法

鹿微微鹿
 鹿微微鹿
发布于 2016/04/12 21:02
字数 680
阅读 21
收藏 0


#import "AppDelegate.h"


@interface AppDelegate () <UITextFieldDelegate>


@end


@implementation AppDelegate 



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

    // Override point for customization after application launch.

     _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    

    [_window setBackgroundColor:[UIColor whiteColor]];

    

    //================================

    //1.创建textField对象

    UITextField *field = [[UITextField alloc] initWithFrame:

                          CGRectMake(100, 100, 200, 60)];

    

    [field setBorderStyle:UITextBorderStyleRoundedRect];

    [_window addSubview:field];

    

    UITextField *field2 = [[UITextField alloc] initWithFrame:

                           CGRectMake(100, 200, 200, 60)];

    [field2 setBorderStyle:UITextBorderStyleRoundedRect];

    field2.tag = 77;

    field.tag = 7;

    [_window addSubview:field2];

    //2.设置代理

    //把当前对象作为field的代理,那么必须让self的类去遵守协议实现协议方法;

    field.delegate = self;

    field2.delegate = self;

    //3.显示清除按钮

    

    [field setClearButtonMode:UITextFieldViewModeWhileEditing];

    

    

    [_window makeKeyAndVisible];

    


    return YES;

}


#pragma mark -- UITextField Delegate


//当用户点击textField弹出系统键盘上返回键的时候调用这个方法

//返回值:是否返回

//参数:就是当前委托这里的委托就是field,也就是这个方法的参数textFiled



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

    

    //设置委托的背景颜色

    textField.backgroundColor = [UIColor yellowColor];

    //textField放弃第一响应者(收起键盘)

    //键盘就是第一响应者

    [textField resignFirstResponder];

    

    return YES;

}


//当文本输入框已经开始编辑的时候调用这个方法

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

    if (textField.tag == 7) {

         NSLog(@"第一个已经开始编辑");

    }

    else  {

        NSLog(@"第二个已经开始编辑");

    }

    return YES;

    

}

//当文本输入框已经停止编辑的时候调用这个方法

//两种停止编辑的情况:1.放弃第一响应者2.点击了其他输入框;

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

    if (textField.tag == 7) {

        NSLog(@"第一个已经停止编辑");

    }

    else {

        NSLog(@"第二个已经停止编辑");

    }

}

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

    

    return YES;

}


//返回值:是否通过点击键盘的按钮的值去改变文本的内容

//参数一:委托

//参数二:当前输入字符的位置

//参数三:当前输入的字符(字符串形式返回)

- (BOOL)textField:(UITextField *)textField

   shouldChangeCharactersInRange:(NSRange)range

     replacementString:(NSString *)string{

    

    NSLog(@"%@",NSStringFromRange(range));

    return YES;

    

}



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

    

}

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

    

    return YES;

}




- (void)applicationWillResignActive:(UIApplication *)application {

    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.

    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

}


- (void)applicationDidEnterBackground:(UIApplication *)application {

    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.

    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.

}


- (void)applicationWillEnterForeground:(UIApplication *)application {

    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.

}


- (void)applicationDidBecomeActive:(UIApplication *)application {

    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.

}


- (void)applicationWillTerminate:(UIApplication *)application {

    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

}


@end


© 著作权归作者所有

共有 人打赏支持
鹿微微鹿
粉丝 8
博文 116
码字总数 71882
作品 0
程序员
私信 提问
iOS开发需要了解的基础内容链接整理

https://llvm.org/svn/llvm-project/cfe/trunk/test/SemaObjC/builtinobjcnslog.m http://llvm.org/klaus/clang/commit/5faf5d31fa634e1fdb576c4d9708cd4efa5ea310/ 对Objective-C的NSObjec......

智能小松鼠
2015/01/14
0
2
UITextField 文本字段控件-IOS开发

进入本文之前建议你认真读一读我的另一篇博文:《UIControl IOS控件编程—IOS开发》http://blog.csdn.net/iukey/article/details/7300412 这样会起到事半功倍效果。 再就是用到UITextField,...

junwong
2012/03/05
1K
1
iOS与JS交互之UIWebView-JSExport协议

级别:★★☆☆☆ 标签:「iOS与JS交互」「UIWebView与JS交互」「JSExport」 作者: Xs·H 审校: QiShare团队 先解释下标题:“iOS与JS交互”。iOS指原生代码(文章只有示例),JS指前端(不...

QiShare
2018/08/31
0
0
xcode5.2 很难将textField的delegate设置为File's Owner

ios输入框被键盘挡住的解决办法, 都有提到,将UITextField的delegate设置为自身,也就是是说UITextField所在的视图要实现UITextFieldDelegate协议,但在xcode5.0里,怎么都找不到File's Owner. 大...

xiaocao000
2013/12/17
543
1
【非凡程序员】 OC第十六节课 初识IOS开发一(字符串转换与计算器)

IOS开发其实和OS X差不多,只不过输出的方法不一样,OS X是setstringvale,而IOS是settext (或者使用点语法.text) ViewController.h文件 #import <UIKit/UIKit.h> @interface ViewControl...

七月流火zsp
2015/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

导出表格

https://blog.csdn.net/hhzzcc_/article/details/80419396

Js_Mei
14分钟前
0
0
Ubuntu中安装Elasticsearch

1.安装jre elasticsearch是使用java开发的搜索引擎,因此其运行依赖于java runtime environment,我们在这里不使用Oracel的官方jre,改为使用open-jre。 运行环境: ubuntu:18.04 jre:openj...

cloes
32分钟前
0
0
nginx rails 详细站点配置入门教程

Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,R...

xiangyunyan
今天
4
0
Shiro

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

嘿嘿嘿IT
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部