• iOS中键盘隐藏几种方式


    转载学习http://www.cnblogs.com/jerehedu/p/4496421.html


    在ios开发中,经常需要输入信息。输入信息有两种方式: UITextField和UITextView。信息输入完成后,需要隐藏键盘,下面为大家介绍几种隐藏键盘的方式。

    <一> 点击键盘上的return按钮,隐藏键盘

      1、UITextField

      遵守协议

    @interface ViewController ()<UITextFieldDelegate>

          设置代理

    myTextfield.delegate=self;

    使用代理中的方法

    -(BOOL)textFieldShouldReturn:(UITextfield *)textField

    {

    [myTextField resignFirstRespinder];

    return NO;

    }

    2、UITextView

      遵守协议

    @interface ViewController ()<UITextViewDelegate>

    设置代理

    textView.delegate=self;

    使用代理中的方法:

    -(BOOL)textView:(UITextview *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

    if([text isEqualToStringL@" "]){

    [textView resignFirstResponder];

    return NO;

    }

    return YES;

    }

    <二> 在键盘上添加一个按钮,点击按钮隐藏键盘

      设置按钮

    UIToolbar *topView=[[UIToolbar alloc]initWithFrame:CGRectMake(0,0,320,30)];

    [topView setBarStyle:UIBarStyleBlack];

    UIBarButtoItem *btnSpace=[[UIBarButtonItem alloc]initWihBarButtonSystemItem:

    UIBarButtonSystemItemFlexibleSpace target:self action:nil];

    UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"完成" style:

    UIBarButtonItemStyleDone tsrget :self action: @swelector(dismissKeyBoard)];

    NSArrar * buttonArray=[NSArrar arrayWithPbjects:btnSpace,doneButton,nil];

    [topView setItems:buttonArray];

    1、UITextField

    [myTextField setInputAccessoryView:TopView];

    2、UITExtView

    [textView setInputAccessoryView:topView];

    添加隐藏键盘方法

    -(void)dismissKeyBoar

    {

    [myTextField resignFirstResponder];

    [textView resignFirstResponder];

    }

    <三>点击除键盘以外的空白位置让键盘隐藏。

      在touchesBegan:withEvent:方法中让输入控件放弃第一响应者身份

    -(void)touchesBegan:(NSString *)touches withEvent:(UIEvent *)event{

    [myTextField resignFirstResponder];

    [textView resignFirstReponder];

    }

    <四> 添加手势,单击除键盘以外的空白位置让键盘隐藏

     //添加单击手势

    UITapGuestureRecognizer *tap=[[UITapGuestureRecognizer alloc]initWithTarget:self action:@selector(dismissKeyBoard)];

    tap.numberOfTouchedRequired=1;

    tap.numberOfTapsRequired=1;

    [self.view addGestureRecgnizer:tap];

    //隐藏键盘

    -(void)dismissKeyBoard{

    [myTextField resigFirstRespinder];

    [textView resigFirstRespinder];

    }

    <五> 只要点击除键盘以外的空白界面,无论是点击哪个控件弹出的键盘,键盘都隐藏

    -(void)touchhesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    [self.view endEditing:YES];

    }

  • 相关阅读:
    QPS、PV和需要部署机器数量计算公式
    libevent 源码深度剖析十三
    libevent源码深度剖析十二
    libevent源码深度剖析十一
    libevent源码深度剖析十
    libevent源码深度剖析九
    libevent源码深度剖析八
    ADO.NET入门教程(三) 连接字符串,你小觑了吗?
    配置文件的使用,如果要跨平台,建议直接用 xml, json, ini 或者本文档,看自己方便
    firemonkey 去掉ios 虚拟键盘上的‘done’toolbar
  • 原文地址:https://www.cnblogs.com/yesihoang/p/4511742.html
Copyright © 2020-2023  润新知