ios uitextview 怎么设置编辑时弹出键盘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios uitextview 怎么设置编辑时弹出键盘相关的知识,希望对你有一定的参考价值。

参考技术A 当用户触击某一个view时,系统会自动指定该view为第一响应对象(first responser),(关于第一响应对象的我们估计可以把它看做一个标志位,每个贴上该标记的对象都能成为first responser,这样可能要好理解些)当某个包含了可编辑文本的view(UITextField或UITextView)成为第一响应对象后,该view会为文本输入开启一个"编辑会话"(editing session),之后该view会告知系统去开启并显示键盘,如果当前键盘处于隐藏状态,那么它会根据当前设备的旋转方向,自动调整并从application的底部以滑动动画形式出现,这通常都是我们看到并已熟知的键盘显示方式;如果当前键盘已处于显示状态,由于第一响应对象这个标记已被设置到当前的view上,所以键盘输入也被重定向到该view上了。
因为当一个view设置第一响应对象后,键盘会自动显示,通常情况下我们不用做其它任何事情。但是,有时我们可以调用可编辑文本view的becomeFirstResponder方法,来显示键盘。
如某一UITextField类的名为theTextField对象可调用以下方法:
[theTextField
becomeFirstResponder];

在可编辑view上调用该方法达到的效果,与用户触击该view的效果是一致的,首先会使该view成为第一响应对象,之后键盘被调用显示。

如何在文本字段单击时弹出 datePicker 并在编辑完成后消失

【中文标题】如何在文本字段单击时弹出 datePicker 并在编辑完成后消失【英文标题】:how to pop up datePicker when text filed click and disappear when editing done 【发布时间】:2013-03-23 13:02:17 【问题描述】:

我看到了类似下面的东西

日期选择器视图总是在那里我怎样才能让它在点击输入日期时弹出,当我点击背景时,日期选择器应该下降

我刚刚习惯了日期选择器视图,但我不知道如何做到这一点出现和消失的东西

【问题讨论】:

【参考方案1】:

好的。这是您对动画的要求的一些示例代码。

- (void) showView

    [self.view addSubview:yourDatePickerView];
        yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
        [UIView animateWithDuration:1.0
                         animations:^
                             yourDatePickerView.frame = CGRectMake(0, 152, 320, 260);
                         ];

这里是如何隐藏你的 DatePickerView

- (void) hideView

    [UIView animateWithDuration:0.5
                         animations:^
                             yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
                          completion:^(BOOL finished) 
                             [yourDatePickerView removeFromSuperview];
                         ];


- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

    if(textField == yourDateTextField)
    
         [self showView];
         return NO; // preventing keyboard from showing
    
    return YES;



- (void)textFieldDidEndEditing:(UITextField *)textField

    if(textField == yourDateTextField)
    
         [self hideView];
    

这就是你所需要的。

【讨论】:

【参考方案2】:

您应该在委托方法中识别文本字段。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

    if(textField == DATE_TEXT_FIELD)
    
             //Display date picker
    



- (void)textFieldDidEndEditing:(UITextField *)textField


        if(textField == DATE_TEXT_FIELD)
        
                 //Hide date picker
            

【讨论】:

【参考方案3】: 创建一个包含此日期选择器视图的UIView 引用。 现在将此datePickerContainerView 分配给textField.inputView 财产。

然后将textfield.delegate 分配给self 并实现您的 textFieldShouldReturn 方法。在那个方法中,写下这几行

[textField resignFirstResponder];

返回是;

现在,当您点击该文本字段时,它将根据 inputview 属性设置加载 datepicker 视图来代替默认键盘。

【讨论】:

【参考方案4】:

在为 datePicker 编写代码之前,请确保键入以下代码行

    [textField resignFirstResponder];

我们知道,键盘是文本字段的默认第一响应者。所以你应该先退出它,然后为选择器编码,否则键盘也会弹出。

【讨论】:

以上是关于ios uitextview 怎么设置编辑时弹出键盘的主要内容,如果未能解决你的问题,请参考以下文章

弹出键的整洁方式,从字典中值 PAIR?

切换标签时弹出键盘,破坏一切

myeclipse新建jsp文件时弹出默认模板,怎么改成自己修改后的

ASP.NET点击提交按钮时弹出一个消息框,但是不想把fileupload控件的路径清空改怎么办?

登陆Outlook时弹出Microsoft Exchange Server不可用,请问怎么办

“图片另存为”时弹出的小窗口最近变成了大窗口(几乎全屏),怎么调回小窗口去