NSRangeに問題があり、textviewが空のときにアプリがクラッシュします。バックスペースボタンが付いたカスタムキーボードを使用していますが、ここでこのコードを呼び出します...
if ([self.myChart isFirstResponder]) {
NSRange currentRange = myChart.selectedRange;
if (currentRange.length == 0) {
currentRange.location--;
currentRange.length++;
}
myChart.text = [myChart.text stringByReplacingCharactersInRange:currentRange withString:[NSString string]];
currentRange.length = 0;
myChart.selectedRange = currentRange;
NSLog(@"%d", NSNotFound);
}
テキストビューにテキストがある場合、これは一度に1文字を削除するのに完全に機能しますが、テキストビューの先頭に到達して文字がなくなると、例外が発生してクラッシュします...
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFString replaceCharactersInRange:withString:]: Range or index out of bounds'
私の目標は、バックスペース機能を停止させることです。クラッシュする理由はわかりますが、解決方法がわかりません。運が悪かったので、NSNotFoundに対して評価してみました。
どんなアイデアでも大歓迎です!