Запуск:
@try
{
NSLog(@"1. autocapitalizationType = %d", [self.textField autocapitalizationType]);
NSLog(@"2. autocapitalizationType = %@", [self.textField valueForKey:@"autocapitalizationType"]);
}
@catch (NSException *exception)
{
NSLog(@"3. %@", exception);
}
Выводит следующее:
1. autocapitalizationType = 0
3. [<UITextField 0x6c15df0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key autocapitalizationType.
Я ожидал:
1. autocapitalizationType = 0
2. autocapitalizationType = 0
Это исключение происходит только со свойствами, которые являются частью протокола UITextInputTraits. Регулярные свойства a UITextField такие, что clearButtonMode можно получить через valueForKey:.
Итак, почему вы не можете получить доступ к свойствам UITextInputTraits с ключом-значением?