Запуск:
@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
с ключом-значением?