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

时间:2015-12-09 06:03:29

标签: ios objective-c uitextfield

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

在这里,Marissa是名称文本,(名字)是占位符。一旦我开始编辑占位符需要清除并开始编辑完整的文本。

我如何实现这一目标?

5 个答案:

答案 0 :(得分:1)

第1步: 将文本归档为xib,并设置为“Marisa(名字)” 并将(名字)的颜色更改为灰色。

第2步: 在Textfiled DidBiginEditing方法中,将textField.text更改为“Marisa”。

答案 1 :(得分:1)

请参阅以下代码。

只需复制粘贴到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;
}

答案 2 :(得分:1)

您无法在文本字段中将占位符与文本一起设置。 但是有一个替代方案。 Textfields有一个称为左视图的东西,你可以进行readOnly视图。 试试这个:

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;

答案 3 :(得分:1)

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

enter image description here

TUTORIAL / SOURCE

答案 4 :(得分:0)

这可以通过以下几种方式实现:

  1. 使用attributedText实例的UITextField属性为文本的不同部分应用样式。在这里,您需要在每次用户使用delegate methods或观察UIControl Control Events更改输入时正确定义属性。

  2. 如果文本输入的结构是固定的并且已预定义,则可以使用一批字段来模拟更复杂/智能的字段。例如,您需要在旁边放置两个字段。一个用于姓氏,第二个用于名字。或者,如果部分不可编辑,您可以使用UILabelUITextField的组合。这种方法允许您根据需要配置复杂字段的单独部分:不同的占位符,字体,键盘样式等。