在文本字段中添加默认文本,并跟随用户输入值

问题描述:

我有一个textfield.Where用户将输入一些名称。但我想在我的文本字段中保留一些默认文本,然后是用户键入的值。在文本字段中添加默认文本,并跟随用户输入值

象下面这样:

usertypetextwillcomehere ##samsn 

所以,##samsn将成为默认的文本必须在文本框。并且usertypetextwillcomehere将在文本字段中显示用户输入值....如果用户类型2个英文字母也有它旁边以下两个letter.Like显示:

he ##samsn 

h ##samsn 

seconstextwillgere ##samsn 

它应该什么都用户类型value..Any想法,将遵循有益感谢

+0

我的回答确实帮助你吗? –

使用此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() 
     } 
    } 
} 

希望这有助于你

+0

对于晚期重播感到遗憾... .no,actulayy我正在为我的文本框使用其他一些类。那么我怎么能使用这个textfield类来挖掘 – doubtman

+0

@doubtman我认为你可以使用相同的方式,但子类化您的自定义TextField,请尝试让我知道 –

+0

您好任何解决方案在这里... https://*.com/问题/ 45605670 /谷歌分析电子商务的价值 - 是 - 不更新功能于谷歌 - 分析控制台 – doubtman

你可以在文本字段后面放置一个标签,并使文本字段的背景透明。当文本字段值更新时,您可以使用## samsn添加到结尾来更新标签的文本。如果您的字体和大小完全相同,它将看起来像是文本字段的一部分。

+0

但它必须跟随我在文本字段中输入的vlaue知道...说如果我输入超过20个字母仍然必须是我输入值的最后一个## samsn' – doubtman