iOS 5:输入占位符不清除焦点,仅清除输入,错误或功能?

时间:2012-02-02 14:10:27

标签: ios ios5 uiwebview cordova mobile-safari

在iOS 5模拟器中使用我的Web应用程序时,我注意到iOS 5不会在第一次输入后立即清除占位符。在所有其他版本的iOS以及所有桌面浏览器上,当用户关注输入时,会立即清除占位符。我现在无法访问iOS 5设备,但我非常怀疑这是模拟器错误。

这是一个错误还是打算?奇怪的是,我只在网上找到了一个对此行为的引用,就在SO:clearing input placeholder in iOS5

这个问题有解决方法吗?当占位符没有立即清除时,对用户来说非常令人沮丧。

2 个答案:

答案 0 :(得分:2)

我认为你错了 - iOS文本字段总是这样。

我不明白为什么这会让用户感到沮丧。如果有任何帮助,帮助文本在开始输入之前保持可见是有帮助的,以防它们在选择字段之前错过它。

你可能会感到困惑的是iOS字段有一个单独的可选行为,当选择字段时文本被清除,但请注意这是实际文本清除,而不是占位符文本。

占位符文本是浅灰色文本,在用户输入内容之前始终显示。

内容文本(通常为黑色)有时会在字段聚焦时清除,有时则不会,具体取决于UITextField的配置方式。

你链接到的SO问题中的jQuery解决方案应该让你复制你想要的任何这个功能的变体,但我个人建议坚持使用iOS约定,即在用户输入内容之前不清除帮助文本。

答案 1 :(得分:0)

这不是一个错误,它是一个功能。您可以使用委托方法清除占位符。 (UITextFieldDelegate http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
  [textField setPlaceholder:@""];
}

adn你应该在完成编辑后控制它的空虚。

- (void)textFieldDidEndEditing:(UITextField *)textField
{
  if ([textField.text isEqualToString:@""])
    [textField setPlaceholder:@"Placeholder Text"];

}