在iPhone中,我有UITextField
的视图。当我点击UITextField
键盘上的清除按钮时,键盘消失,而不是UITextField
中的文字。 ipad一样正常工作。请建议我,该怎么办?
在此先感谢!!
答案 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
个代表。
( textFieldDidEndEditing
,textFieldShouldEndEditing
,textFieldShouldReturn.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;
检查此行并将其删除或更改查看模式..