textViewのdelegateモニタユーザの正しい姿勢

589 ワード


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
    NSString *targetString = [textView.text stringByReplacingCharactersInRange:range withString:text];

    if (targetString.length  > _inputCount) {
        textView.text = [targetString substringToIndex:_inputCount];
        return NO;
    }
    return YES;
}

このような書き方と同様に、ユーザ入力が要求に合わない場合(一度に大量のテキストを貼り付けるなど)、この方法はNOを返し、UIに問題は生じない.- (void)textViewDidChange:(UITextView *)textViewメソッドでテキストを監視/修正すると、レイアウトの問題が発生する可能性があります.