2017-07-29 98 views
0

我有一個textfield.Where用戶將輸入一些名稱。但我想在我的文本字段中保留一些默認文本,然後是用戶鍵入的值。在文本字段中添加默認文本,並跟隨用戶輸入值

象下面這樣:

usertypetextwillcomehere ##samsn 

所以,##samsn將成爲默認的文本必須在文本框。並且usertypetextwillcomehere將在文本字段中顯示用戶輸入值....如果用戶類型2個英文字母也有它旁邊以下兩個letter.Like顯示:

he ##samsn 

h ##samsn 

seconstextwillgere ##samsn 

它應該什麼都用戶類型value..Any想法,將遵循有益感謝

+0

我的回答確實幫助你嗎? –

回答

1

使用此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://stackoverflow.com/問題/ 45605670 /谷歌分析電子商務的價值 - 是 - 不更新功能於谷歌 - 分析控制檯 – doubtman

0

你可以在文本字段後面放置一個標籤,並使文本字段的背景透明。當文本字段值更新時,您可以使用## samsn添加到結尾來更新標籤的文本。如果您的字體和大小完全相同,它將看起來像是文本字段的一部分。

+0

但它必須跟隨我在文本字段中輸入的vlaue知道...說如果我輸入超過20個字母仍然必須是我輸入值的最後一個## samsn' – doubtman

相關問題