在文本字段中添加默认文本,并跟随用户输入值
问题描述:
我有一个textfield.Where用户将输入一些名称。但我想在我的文本字段中保留一些默认文本,然后是用户键入的值。在文本字段中添加默认文本,并跟随用户输入值
象下面这样:
usertypetextwillcomehere ##samsn
所以,##samsn
将成为默认的文本必须在文本框。并且usertypetextwillcomehere
将在文本字段中显示用户输入值....如果用户类型2个英文字母也有它旁边以下两个letter.Like显示:
he ##samsn
h ##samsn
seconstextwillgere ##samsn
它应该什么都用户类型value..Any想法,将遵循有益感谢
答
使用此UITextField子类,配置后缀,并享受
提高
class PostFixTextField: UITextField {
@IBInspectable var postfix : String = ""
@IBInspectable var removePostfixOnEditing : Bool = true
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func awakeFromNib() {
super.awakeFromNib()
self.addTarget(self, action: #selector(textHasChanged), for: .editingDidEnd)
self.addTarget(self, action: #selector(removePostFix), for: .editingDidBegin)
self.addTarget(self, action: #selector(textHasChanged), for: .editingChanged)
}
func textHasChanged()
{
self.removePostFix()
self.addPostFix()
self.setCursorPosition(input: self, position: (self.originalText()?.characters.count)!)
}
private func setCursorPosition(input: UITextField, position: Int) {
let position = input.position(from: input.beginningOfDocument, offset: position)!
input.selectedTextRange = input.textRange(from: position, to: position)
}
func addPostFix()
{
if(self.text != nil)
{
self.text = self.text! + postfix
}
}
func originalText() ->String?{
let prefixRange = NSString(string: (self.attributedText?.string)!).range(of: postfix)
if(prefixRange.location != NSNotFound)
{
return self.text!.replacingOccurrences(of: postfix, with: "")
}
return self.text
}
func removePostFix(){
if(self.removePostfixOnEditing && self.text != nil)
{
self.text = self.originalText()
}
}
}
希望这有助于你
答
你可以在文本字段后面放置一个标签,并使文本字段的背景透明。当文本字段值更新时,您可以使用## samsn添加到结尾来更新标签的文本。如果您的字体和大小完全相同,它将看起来像是文本字段的一部分。
+0
但它必须跟随我在文本字段中输入的vlaue知道...说如果我输入超过20个字母仍然必须是我输入值的最后一个## samsn' – doubtman
我的回答确实帮助你吗? –