ユーザーに入力するように指示する文をユーザーが入力することが期待される UITextField があります。したがって、入力する文はすでにわかっています。文の途中で、ユーザーは密かにメッセージを渡す必要があります。これを行う方法は、既知の文の数文字を入力し、「&」を入力してから、WhichEverMessageUserWantsToPass と「&」を入力して終了することです。
キャッチは、ユーザーが「&」を押した瞬間です。その後に入力したものは表示されるべきではありません。代わりに、その後に入力した各文字は、既知の文の文字に置き換えられる必要があります。
例えば:
文字列 - 2 年前に住んでいた都市は?
ユーザーの種類 - どの都市のディ&デテロイト&n 2 年
UITextField が表示されます - 私が 2 年間住んでいた都市はどれですか
2 つの「&」の間の部分は本質的にそれ自体が答えなので、テキスト フィールドに表示したくありません。
現在の私のアプローチは次のとおりです。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var addString = String(self.character[self.textLength])
var start = textField.text.endIndex // Start at the string's end index as I only want the most recent character to be replaced
var end = textField.text.endIndex // Take the string's end index as I only want one character to be changes per type
var nextRange: Range<String.Index> = Range<String.Index>(start: start,end: end)
textField.text.stringByReplacingCharactersInRange(nextRange, withString: addString)
return true
}
ただし、これは現在どの文字にも取って代わるものではないようです。誰かが実装を知っているなら、親切に助けてください。ありがとうございました