zoukankan      html  css  js  c++  java
  • ios开发中关闭textview控件的虚拟键盘

    在ios开发中,textfield控件在点击的时候出现虚拟键盘,关掉虚拟键盘可以通过虚拟键盘中的done button和点击view中的任意地方来关闭虚拟键盘。

    1.第一种方法是textfield控件的虚拟键盘中的done按钮是通过在我们自己写的类加上一个接口:UIViewController<UITextFieldDelegate>来实现。然后再加上函数:

    -(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
        [textField resignFirstResponder];
        return YES;
    }
    

     不过这不算完成,还有一个步骤,要在对应的xib文件中加上outlet和xib中控件的连接。我就是因为这个原因搞了好久。在这里我们就要把自己的text field控件和degelate连接起来就可以了,在referenceing outlets里面。

    而text view控件就有点不太一样了,由于可以是多行的,是return换行按钮,点击按钮是换行功能,所以还要换成下面的这个函数:

    -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
    {
        if ([text isEqualToString:@"\n"]) {
            [textView resignFirstResponder];
            return NO;
        }
        return YES;
    }
    

     2.第二种方法是通过backgroundtap来实现

      保存头文件并切换到实现文件。在其中添加此代码,其作用是通知所有文本字段在必要时生成第一响应者状态。在非第一响应者控件上调用resignFirstResponder是绝对安全的,因此我们可以放心地对两个文本字段调用它,而不需要检查其中是否有一个是第一响应者。

    - (IBAction)backgroundTap:(id)sender
    {
        [textViewTitle resignFirstResponder];
    }
    

    保存此文件,然后返回Interface Builder。我们现在需要更改nib视图的底层类。如果看一下nib的主窗口(参见图4-17),将会看到该视图中有3个图标。第三个图标名为View,是nib的主视图,它将所有其他控件和视图作为子视图容纳在内。

    图4-17 nib的主窗口具有3个图标,
    第三个图标(标有View)是nib的内容视图

    单击名为View的图标,该图标表示nib的容器视图。按 4调出身份检查器(参见图4-18)。可以在这里更改Interface Builder中任何对象实例的底层类。

    标有Class的字段目前显示为UIView,将其更改为UIControl。能够触发操作方法的所有控件都是UIControl的子类,所以通过更改底层类,此视图将能够触发操作方法。可以按 2调出连接检查器(参见图4-19)来验证这一点。现在应该会看到在上一章中将按钮连接到操作时看到的所有事件。

    图4-18 身份检查器支持更
    改nib中任何对象实例的底层类
    图4-19 通过将视图的类从UIView改
    为UIControl,我们能够在任何
    标准事件上触发操作方法

    从Touch Down事件拖到File's Owner图标,然后选择backgroundTap:操作。现在,触摸视图中没有活动控件的任何位置都将触发新的操作方法,这将导致关闭键盘。

    说明 你可能想知道为什么我们选择Touch Down,而不是像上一章那样选择Touch Up Inside。答案是后台不是一个按钮。它不是用户眼中的控件,所以它不需要用户尝试滑动手指来取消操作。

  • 相关阅读:
    Android外部SD卡的读取
    TableLayout(表格布局)
    Android中Adapter之BaseAdapter使用
    Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) .
    html5新增及废除属性
    Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
    Android的面孔_Actiyity
    初步理解类和对象
    zabbix(2)使用指南
    zabbix(1)基础知识
  • 原文地址:https://www.cnblogs.com/baozou/p/3262886.html
Copyright © 2011-2022 走看看