2017-05-11 66 views
1

我向用户显示UITextField,并且此文本字段内的文本由不同的控制器更新。在不可编辑的UITextField中显示清除按钮

用户无法在此UITextField内输入内容。我保证这通过执行以下操作:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    return NO; 
} 

但我想显示在文本字段中清除图标,使用户可在文本框清除值。我这样做,通过执行以下操作:

_inputField.clearButtonMode = UITextFieldViewModeAlways; 

但是清除按钮不会显示出来的时候,里面有一个文本:(

任何想法,我可能是做错了

+0

的clearButton只显示了当在文本字段 – jokeman

+0

我添加文本到文本框一些文本编程,它没有出现 –

+0

根据文档:“叠加视图仅在文本字段中编辑文本时显示”。因此,如果您未处于编辑模式,则不会显示。也许试试'_inputField.clearButtonMode = UITextFieldViewModeWhileEditing;' – Koen

回答

0

试试?此:
customTextField.clearButtonMode = UITextFieldViewMode.Always

customTextField.clearsOnBeginEditing = TRUE;

FUNC textFieldShouldClear(文本框:的UITextField) - >布尔{ 还真 }

0

你需要创建一个自定义按钮,并把它添加到文本框的rightView

UIButton *clearButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[clearButton setImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal]; 
[clearButton setFrame:CGRectMake(0,0,45,45)]; 
// If you need action 
[clearButton addTarget:self action:@selector(clearTextField) forControlEvents:UIControlEventTouchUpInside]; 


_inputField.rightViewMode = UITextFieldViewModeAlways; 
_inputField.rightView = clearButton; 
_inputField.rightView.hidden = NO; 
0

我想你忘了添加UITextFieldDelegate,并设置委托给你的文本框

_inputField.delegate = self; 
相关问题