UITextField,在 ios 中的文本后设置占位符

UITextField, set placeholder after text in ios

我需要在文本后保留占位符,当单击文本框时我只需要清除占位符并能够键入字符。

在此 Marissa 中是姓名文本,(First Name) 是占位符。一旦我开始编辑占位符需要清除并开始编辑完整的文本。

我怎样才能做到这一点?

第 1 步: 使文本归档属性形式 xib 并设置 "Marisa (First Name)" 并将(名字)的颜色更改为灰色。

第 2 步: 并在 Textfiled DidBiginEditing 方法中将 textField.text 更改为 "Marisa"。

请参考以下代码。

只需将下面的代码复制粘贴到 viewdidload()

textfield.attributedPlaceholder = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"Yourtext%@",Placehodertext] attributes:@{NSForegroundColorAttributeName: color}];

UITextfield 的委托分配给 self

textfield.delegate =  self


-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
   textfield.text = @"Yourtext"
   return YES;
}

您不能将占位符与文本字段中的文本一起设置。 但是有一个替代方案。 Textfields 有一个称为左视图的东西,您可以将其设置为只读视图。 试试这个:

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
UILabel *textLabel = [[UILabel alloc] initWithFrame:paddingView.bounds];
textLabel.text = @"Marissa";
[paddingView addSubView:textLabel]; 
                textField.leftView = paddingView;
                textField.leftViewMode = UITextFieldViewModeAlways;

我在下面 URL 中找到了一些类似的自定义文本字段。如果你觉得这个合适,你可以使用它。

TUTORIAL / SOURCE

这可以通过多种方式实现:

  1. 使用 UITextField 实例的 attributedText 属性 为文本的不同部分应用样式。每次用户使用 delegate methods or by observing UIControl Control Events.

  2. 更改输入时,您需要在此处正确定义 属性
  3. 如果文本输入的结构是固定的和预定义的,您可以使用一批字段来模仿更多 complex/smart 字段。在这里,例如,您需要将两个字段放在旁边。一为姓,二为名。或者,如果其中一个部分不可编辑,您可以使用 UILabelUITextField 的组合。这种方法允许您根据需要配置复杂字段的单独部分:不同的占位符、字体、键盘样式等。