Dan*_*Dan 12 iphone uitextfield
我想知道是否有办法让UITextField清除按钮'始终可见'
textfield.clearButtonMode = UITextFieldViewModeAlways;
Run Code Online (Sandbox Code Playgroud)
似乎不起作用..如果可以使用按钮关闭键盘?
提前致谢.
小智 37
就像之前提到的那样,在您清除该字段之后,苹果似乎正在设置文本域焦点.
解决方案非常简单.只需自己清除字段,resignFirstResponder并返回NO
-(BOOL)textFieldShouldClear:(UITextField *)textField
{
textField.text = @"";
[textField resignFirstResponder];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
在你的委托中,功能
- (BOOL)textFieldShouldClear:(UITextField *)textField
Run Code Online (Sandbox Code Playgroud)
当用户想要清除文本字段时调用.如果您返回YES并致电
[textField resignFirstResponder];
Run Code Online (Sandbox Code Playgroud)
键盘应该消失.我不知道clearButtonMode,除了你可能想要提前设置它,最好是在将视图添加到其superview之前.
编辑为确保您真正辞职了响应者,请稍后尝试:
[textField performSelector:@selector(resignFirstResponder) withObject:nil afterDelay:0.1];
Run Code Online (Sandbox Code Playgroud)
小智 5
延迟对我来说效果不佳.相反,我向委托添加了一个实例变量:
BOOL cancelEdit;
Run Code Online (Sandbox Code Playgroud)
然后在委托实现中:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (cancelEdit) {
cancelEdit = NO;
return NO;
} else {
return YES;
}
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
cancelEdit = YES;
return YES;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5737 次 |
最近记录: |