NSString
韓国語またはチェコ語の場合に正しく追加する方法を理解しようとしている小さな問題があります。
コンテキスト:UITextField
ユーザーにいくつかの情報を入力するように提供します。変更された場合にのみ文字列を保存するために、テキストフィールドでユーザーが変更した内容のログを保持したいと考えています。これを行うとき、私はUITextFieldDelegate
プロトコルを使用します
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *resultingString = [textField.text stringByReplacingCharactersInRange:range withString:string];
[(NSMutableDictionary *)self.currentModifiedObject setObject:resultingString forKey: @"textfield" ];
return YES;
}
ほとんどの言語で問題なく動作していますが、最近、韓国語とチェコ語で、アクセントなどの文字の組み合わせに問題があるという報告を受けました。私が辞書に記録しているものを見ると、文字を打ち、その直後にアクセントをつけて作ったアクセント付きの文字がそのままこの方法で記録されています。
たとえば、チェコ語: キーボードで「Fidelesˇ」を一連の文字として入力すると、UITextField
「Fideleš」と表示され、記録された文字列は「Fideles\U02c7」と表示されます。これは、キーボード シーケンスと同等です。
「Fideles\U02c7」キーボード入力から「Fideleš」を実際に生成する正しい方法を知りたいです。
助けてくれてありがとう、誰かが私を助けてくれることを願っています。敬具、デビッド
私は使用しようとしました:
- (NSString *)precomposedStringWithCanonicalMapping
- (NSString *)precomposedStringWithCompatibilityMapping
ただし、結果がない場合、結果の文字列は同じままです。