1

UITextFieldある程度の文字数の後にテキストが区切られる特別な場所を作成しようとしています。-shouldChangeCharactersInRangeデリゲートフロムUITextFieldを使用できることは知っています。

ここで、 にテキストを入力するときに、より複雑な区切りが必要UITextFieldです。4 文字ごとに1 つの空白で区切られた文字が必要です。最後の 2 文字も 1 つの空白で残りから分離する必要があります。

例: XXNL XNLX XLMD XMLD XX

私はこの方法を使用しなければならないことを知っています...

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

しかし、この方法で何をすべきかわかりません。誰でも私を助けることができますか?

4

2 に答える 2

0

そのデリゲート メソッドでは、textField に含まれる文字列を作成する必要があります。次に、5 を法とする文字列の長さが 4 であるかどうかを確認できます (つまり、4 文字の後に起動し、9 文字 (4 + 1 スペース + その他の 4) の後に再び起動するなど)。チェックが起動した場合、 textField テキストにスペース @" " を追加します。

これを行う際の問題は、ユーザーがカーソルを移動してテキストを変更すると、すべてが失われることです。

これを行う別の方法は、同じ方法で文字列をトリミング (すべてのスペースを削除) し、4 文字ごとに再びスペースを追加することです。

于 2013-08-30T10:51:50.920 に答える
-1
See if you want that style of text then after every 4 characters in textfield text just add one space.and if length is total characters you want then don't allow any other characters.In shouldchangecharactersinRange: you have to insert 1 space programatically

if(textfield.text.length % 4 == 0) then 
    string = [string stringbyappendingstring:@""];

Do this it will fix your requirement and dont accept any characters after the length you need,like

if(textfield.text.length == someinteger) then 
     don't accept the string just return NO;
于 2013-08-30T10:38:24.327 に答える