iOS开发中收键盘是十分常用的功能,只需一行代码即可为ViewController添加工具条收键盘功能
更重要的是使用catogory,无代码污染。
代码
// UITextField+keyboard.h
// TextFieldKeyBord
//
// Created by luo.h on 15/10/8.
// Copyright 2015年 l.h. All rights reserved.
//
#import
@interface UITextField (keyboard)
+(void)registerTextFieldInView:(UIView *)aView;
//
// UITextField+keyboard.m
// TextFieldKeyBord
//
// Created by luo.h on 15/10/8.
// Copyright 2015年 l.h. All rights reserved.
//
#import "UITextField+keyboard.h"
@implementation UITextField (keyboard)
-(void)addToolbarWitDoneTitle:(NSString*)title
{
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
UIBarButtonItem \*doneButton = \[\[UIBarButtonItem alloc\] initWithTitle:title
style:UIBarButtonItemStyleDone
target:self
action:@selector(dismissKeyBord)\];
\[doneButton setTintColor:\[UIColor redColor\]\];
UIToolbar \*toolbar = \[\[UIToolbar alloc\] initWithFrame:CGRectMake(0, 0, self.window.frame.size.width, 44.0)\];
\[toolbar setItems:@\[flexibleSpaceLeft, doneButton\]\];
\[self setInputAccessoryView:toolbar\];
}
//查找所有UITextField并添加按钮
+(void)registerTextFieldInView:(UIView *)aView;
{
for (id obj in aView.subviews) {
NSLog(@"obj class: %@",[obj class]);
if ([obj isKindOfClass:[UITextField class]]) {
UITextField* theTextField = (UITextField*)obj;
[theTextField addToolbarWitDoneTitle:@"完成"];
}
}
}
-(void)dismissKeyBord
{
[self resignFirstResponder];
}
使用:
- (void)viewDidLoad {
[super viewDidLoad];
//注册self.view里所有UITextField
\[UITextField registerTextFieldInView:self.view\];
}
Demo: https://files.cnblogs.com/files/sixindev/TextFieldKeyBord.zip
手机扫一扫
移动阅读更方便
你可能感兴趣的文章