Я протестировал этот код, и он работает:
NSString *strTest = @"Word";
NSRange range = {0, 3};
NSString *strTemp = [strTest substringWithRange: range];
Результат: strTemp = "Wor"
Так что проблема в другом: index не правильный или textBox.text может быть пустым.
Поместите точку останова на строку substringWithRange: и посмотрите на значения index и tempStr до появления проблемы.