zoukankan      html  css  js  c++  java
  • 一行代码为UITextField添加收键盘功能

    iOS开发中收键盘是十分常用的功能,只需一行代码即可为ViewController添加工具条收键盘功能

    更重要的是使用catogory,无代码污染。

    代码

    //  UITextField+keyboard.h
    //  TextFieldKeyBord
    //
    //  Created by luo.h on 15/10/8.
    //  Copyright © 2015年 l.h. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface UITextField (keyboard)
    
    +(void)registerTextFieldInView:(UIView *)aView;
    
    @end
    //
    //  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];
    }
    
    @end

    使用:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        //注册self.view里所有UITextField
        [UITextField registerTextFieldInView:self.view];
    
    }
    

    Demo: http://files.cnblogs.com/files/sixindev/TextFieldKeyBord.zip

     

  • 相关阅读:
    关于大型网站技术演进的思考(二)--存储的瓶颈(2)[转]
    根据 Sourcemap 调试打包后的js
    webpack 中某些配置
    Javascript 中的数组
    浮动元素的display属性
    安装升级npm依赖
    锚点定位
    我所认识的java泛型(主要讨论通配符的使用)
    快速排序的递归非递归实习java
    java 选择排序
  • 原文地址:https://www.cnblogs.com/sixindev/p/4862735.html
Copyright © 2011-2022 走看看