单击uitextfield时,清除按钮键盘正在消失而不是文本

时间:2012-07-05 04:47:12

标签: ios objective-c iphone keyboard uitextfield

在iPhone中,我有UITextField的视图。当我点击UITextField键盘上的清除按钮时,键盘消失,而不是UITextField中的文字。 ipad一样正常工作。请建议我,该怎么办? 在此先感谢!!

5 个答案:

答案 0 :(得分:39)

只需清除字段resignFirstResponder(如果要隐藏键盘)并返回NO / false

Note: set Attributes inspector property of UITextField 
  

清除按钮 - >编辑时出现

so it will display 'X' button while editing in textfield.

// Objective-C

-(BOOL)textFieldShouldClear:(UITextField *)textField
{
    textField.text = @"";
    [textField resignFirstResponder];
    return NO;
}

// Swift

func textFieldShouldClear(textField: UITextField) -> Bool {
    textField.text = ""
    textField.resignFirstResponder()
    return false
}

答案 1 :(得分:11)

附上uitextifield的委托后,请尝试使用此代码

-(BOOL)textFieldShouldClear:(UITextField *)textField
{
     return true;
}

答案 2 :(得分:10)

首先,检查与您的UITextField相关的所有代码块(尤其是代码yourTextField.hidden = YES;

放置断点并分析您实施的每个UITextField个代表。

textFieldDidEndEditingtextFieldShouldEndEditingtextFieldShouldReturn.etc

OR

实施textFieldShouldClear委托并在此处编写代码,以便查看并清除UITextField

为此,您必须将clearButtonMode设置为如下,

yourTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
yourTextField.delegate = self;

//For active keyboard again
[yourTextField becomeFirstResponder];

然后实施textFieldShouldClear委托

<强> YourClass.h

    @interface className : UIViewController <UITextFieldDelegate>

<强> YourClass.m

-(BOOL)textFieldShouldClear:(UITextField *)textField {
    yourTextField.hidden = NO;
    yourTextField.text = @"";
    return YES;
}

答案 3 :(得分:5)

确保你已经给出了这两个

editingTextField.delegate = self;
editingTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
仅当您需要进行一些自定义时,才需要

TextFieldShouldClear : - )

你在做这个方法吗?

也许你在这个委托方法中调用resignFirstResponder,这就是键盘被解雇的原因。

请仔细阅读委托方法,并检查您的具体操作。

答案 4 :(得分:2)

如果您有

,也会发生此问题
yourTextField.clearButtonMode = UITextFieldViewModeNever;

检查此行并将其删除或更改查看模式..