2012-05-08 10 views
1

私は2桁以上の入力を制限しているUITextFieldを持っています。今はうまくいきますが、テキストフィールドをタップすると、&すべてのコンテンツを選択してください。&と入力すると、既存の2桁を上書きすることはできません。UITextFieldに入力されるcharctersの数を制限する

ここで 'selectedTextRange'プロパティの使い方についての手掛かりはありますか?

- (BOOL)cell:(RunnerTableViewCell *)iCell shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iString { 
    self.navigationItem.rightBarButtonItem.enabled = YES; 
    NSCharacterSet *anUnacceptedInput = [[NSCharacterSet decimalDigitCharacterSet] invertedSet]; 
    int aCharacterUpperLimit = 2; 
    BOOL aReturnValue = YES; 

    NSInteger aTotalLength = iCell.inputField.text.length + [iString length]; 
    NSLog(@"iString=%@ aTotalLength=%d",iString,aTotalLength); 
    if ([[iString componentsSeparatedByCharactersInSet:anUnacceptedInput] count] > 1 || (aTotalLength > aCharacterUpperLimit && ![iString isEqualToString:kRunnerEmptyString]) || [iString length] > aCharacterUpperLimit) { 
     aReturnValue = NO; 
    } 
    return aReturnValue; 
} 

答えて

3

これを試してみてください:

NSInteger aTotalLength = iCell.inputField.text.length + [iString length] - iRange.length; 
関連する問題