Если вы углубитесь в структуру UIKit и откроете UITextField.h
, вы найдете:
@interface UITextField : UIControl <UITextInput, NSCoding> {
@private
UITextInputTraits *_traits;
UITextInputTraits *_nonAtomTraits;
Вы также обнаружите, что clearButtonMode
объявлено как @property
в заголовочном файле UITextField, но autocapitalizationType
(и остальная часть протокола UITextInputTraits
) не являются.
Мы с вами не видим UITextField.m
, поэтому все, что мы можем на самом деле сделать вывод, это то, что Apple реализовала протокол UITextField
UITextInputTraits
способом, не совместимым с KVC. Предположительно, где-то склеенный код преобразует [myTextField autocapitalizationType]
в соответствующее значение, но все, что происходит закулисной магией, останавливается до valueForKey:
.