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 中找到了一些类似的自定义文本字段。如果你觉得这个合适,你可以使用它。
这可以通过多种方式实现:
使用 UITextField
实例的 attributedText
属性 为文本的不同部分应用样式。每次用户使用 delegate methods or by observing UIControl
Control Events.
更改输入时,您需要在此处正确定义 属性
如果文本输入的结构是固定的和预定义的,您可以使用一批字段来模仿更多 complex/smart 字段。在这里,例如,您需要将两个字段放在旁边。一为姓,二为名。或者,如果其中一个部分不可编辑,您可以使用 UILabel
和 UITextField
的组合。这种方法允许您根据需要配置复杂字段的单独部分:不同的占位符、字体、键盘样式等。
我需要在文本后保留占位符,当单击文本框时我只需要清除占位符并能够键入字符。
在此 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 中找到了一些类似的自定义文本字段。如果你觉得这个合适,你可以使用它。
这可以通过多种方式实现:
使用
UITextField
实例的attributedText
属性 为文本的不同部分应用样式。每次用户使用 delegate methods or by observingUIControl
Control Events. 更改输入时,您需要在此处正确定义 属性
如果文本输入的结构是固定的和预定义的,您可以使用一批字段来模仿更多 complex/smart 字段。在这里,例如,您需要将两个字段放在旁边。一为姓,二为名。或者,如果其中一个部分不可编辑,您可以使用
UILabel
和UITextField
的组合。这种方法允许您根据需要配置复杂字段的单独部分:不同的占位符、字体、键盘样式等。