0
- ( BOOL ) textField: ( UITextField * )textField shouldChangeCharactersInRange: ( NSRange )range replacementString: ( NSString * )string {

NSString *strCurrent;
if ( range.length > 0 ) {   // deleting
    int iNumberOfDeletedCharacter = [ string length ];
    int iNumberOfRestCharacter = [ [ textField text ] length ] - iNumberOfDeletedCharacter;
    strCurrent = [ [ textField text ] substringToIndex: iNumberOfRestCharacter - 1 ];
}
else {  // adding
    strCurrent = [ [ textField text ] stringByAppendingString: string ];
}

MyNSLog( @"%@", strCurrent );

}

このコードは、2byte 言語の文字が入っている場合、一部を削除するのに問題があります。これの簡単な方法を知っていますか?

読んでくれてありがとう。

4

1 に答える 1

0

あなたの質問から、あなたが達成しようとしていることは明らかではありません。編集後に結果の文字列を計算する場合:

NSString *editedText = [textField.text stringByReplacingCharactersInRange:range withString:string];
于 2012-11-23T14:50:47.503 に答える