All the other answers are limiting the length of the input, while the OP is clearly asking for a limit to the value of the input. First of all, you can also use a UIStepper

(source: apple.com)
or a UISlider
for this purpose (together with a label to display the current value). This might be clearer to the user as well.
If you stick to a UITextField-based approach, you need to implement the textField:shouldChangeCharactersInRange:replacementString:
method as follows:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
NSNumber *number = [numberFormatter numberFromString:text];
if (number == nil || [number doubleValue] > 10) {
return NO;
}
return YES;
}
You might want to add some extra checks for negative numbers if you don't allow them.