Snail—UI学习之自定义键盘及键盘收起(待完善)

在viewController.h中加入代理

#import <UIKit/UIKit.h>

@interface WJJRootViewController : UIViewController <span style="color:#FF0000;"><UITextFieldDelegate></span>

@end

viewController.m中代码展示

#import "WJJRootViewController.h"

@interface WJJRootViewController (){
    <span style="color:#FF0000;">UITextField * _textField;</span>
}

@end

@implementation WJJRootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor greenColor];
	// Do any additional setup after loading the view.
    _textField = [[UITextField alloc] initWithFrame:CGRectMake(40, 40, 240, 40)];
    _textField.borderStyle = UITextBorderStyleRoundedRect;
    _textField.placeholder = @"请输入:";
    _textField.clearButtonMode = UITextFieldViewModeAlways;
    _textField.keyboardType = UIKeyboardTypeDefault;
    _textField.returnKeyType = UIReturnKeyGo;

   <span style="color:#FF0000;"> //设置textField的代理 要让viewController为他收起键盘
    _textField.delegate = self;</span>

   /*
    //自定义键盘 可以看出来自定义键盘只与高度有关 其他不影响自定义键盘的位置大小
    UIView * keyboardView = [[UIView alloc] initWithFrame:CGRectMake(0, 1, 1, 100)];
    keyboardView.backgroundColor = [UIColor redColor];
    //把view赋值给inputView
    _textField.inputView = keyboardView;

    //设置二级键盘
    UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(1, 1, 320, 20)];
    label.text = @"男";
    label.backgroundColor = [UIColor grayColor];
    _textField.inputAccessoryView = label;
    */
    [self.view addSubview:_textField];
}

//方法标记位
#pragma mark UITextFieldDelagate
//下面的方法就是UITextFieldDelegate中常用的委托方法
 //文本框将要开始编辑时调用
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    return YES;
}

//文本编辑开始的时候调用
- (void)textFieldDidBeginEditing:(UITextField *)textField{

}

//文本框将要结束编辑时调用
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    return YES;
}

//文本框结束编辑时调用
- (void)textFieldDidEndEditing:(UITextField *)textField{

}

//当按下return键时调用的方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    //让textField失去第一响应者 即收起键盘
    [textField resignFirstResponder];
    return YES;
}

//每个viewController都会有的触摸方法 点击空白处收起键盘
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //第一种方法
    //[_textField resignFirstResponder];
    //第二种方法  原理:编辑textField的时候相当于编辑viewController 所以设置
    //viewController结束编辑
    [self.view endEditing:YES];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

效果图如下

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 05:58:45

Snail—UI学习之自定义键盘及键盘收起(待完善)的相关文章

Snail—UI学习之自定义通知NSNotification

背景是:一个界面跳转到第二个界面 然后 第一个界面发了一个通知  然后第二个界面收到这个通知后 把里面的数据取出来 在RootViewController.m中写入下面代码 #import "WJJRootViewController.h" #import "WJJFirstViewController.h" @interface WJJRootViewController (){ UITextField * _textField; } @end @implemen

Snail—UI学习之自定义标签栏UITabBarController

这里的背景跟上面的差不多 不过这里要用到AppDelegate的单例进行传值 首先到AppDelegate.h文件中 <span style="color:#FF0000;">#import <UIKit/UIKit.h> @interface WJJRootViewController : UITabBarController //声明一UIButton属性 来记录当前按下的按钮 @property (nonatomic,strong) UIButton *

Snail—UI学习之自定义导航栏NSNavigationController

首先新建一个RootViewController 再建一个FirstViewController 在RootViewController.m中写入 #import "WJJRootViewController.h" #import "WJJFirstViewController.h" @interface WJJRootViewController () @end @implementation WJJRootViewController - (id)initWit

Snail—UI学习之UITableView之自定义UITableViewCell

之前都是用得系统的UItableViewCell 局限性比较大 不够自由 自定义的cell满足了我们所有的需求 以后做项目的时候也是大部分都是用自定义的 后面我们要把数据放在数据模型里 数据源数组里将要存储的是model BookModel.h #import <Foundation/Foundation.h> @interface WJJBookModel : NSObject @property (nonatomic,copy) NSString * title; @property (n

Snail—UI学习之UITextField

简单看一下UITextField的属性 - (void)createTextField{ UITextField * textField = [[UITextField alloc] initWithFrame:CGRectMake(40, 40, 240, 40)]; //设置UITextField的边框风格,否则看不见textField 盲点的话可以点到它 /* UITextBorderStyleRoundedRect 圆角 UITextBorderStyleBezel 上.左有边框 UIT

Snail—UI学习之系统标签栏UITabBarController

背景条件是 有一个根控制器 继承于UITabBarController 然后 建四个UIViewController 再然后创建一个UIViewController 我们让它作为上面四个其中之一的子界面 然后再RootViewController中写入下面代码 #import "WJJRootViewController.h" #import "WJJFirstViewController.h" #import "WJJSecondViewControll

Snail—UI学习之得到某组件的方法

第一种方法:根据传入函数的参数对象的tag属性区分 比如 多个按钮执行同一个方法,但是不同的方法执行时,里面的逻辑又不一样 那就得加以区分 这时可以用tag来区别 //再新建一个Button UIButton * button2 = [UIButton buttonWithType:UIButtonTypeSystem]; button2.frame = CGRectMake(20, 60, 280, 30); button2.tag = 2; button2.backgroundColor =

Snail—UI学习之初识

在AppDelegate.m中有几个默认存在的函数 // // WJJAppDelegate.m // 课上练习 // // Created by Snail on 15-7-20. // Copyright (c) 2015年 Snail. All rights reserved. // #import "WJJAppDelegate.h" @implementation WJJAppDelegate //程序的入口 仅仅同意一次 - (BOOL)application:(UIApp

Snail—UI学习之表视图TableView(一)

我们是整一个表视图 然后再表视图的上方是一个广告栏 首先,在.h文件中写上下面的代码 主要就是遵守一些代理 #import <UIKit/UIKit.h> @interface WJJRootViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,UIScrollViewDelegate> @end 然后再.m文件中写上如下 #import "WJJRootViewContro