:UITextFieldのvalueForKey:がUITextInputTraitsプロパティの例外をスローするのはなぜですか?これを実行する
@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
プロトコルの一部である特性で発生します。 通常UITextField
のようなものはclearButtonMode
であり、valueForKey:
からアクセスできます。
なぜ、キー値コーディングでUITextInputTraits
プロパティにアクセスできませんか? (
@interface UITextField : UIControl <UITextInput, NSCoding> {
@private
UITextInputTraits *_traits;
UITextInputTraits *_nonAtomTraits;
あなたはまたclearButtonMode
はUITextFieldのヘッダファイル内@property
として宣言されていることがわかりますが、それautocapitalizationType
:あなたはUIKitフレームワークを詳細に調べるとUITextField.h
を開く場合
実装の詳細が原因である可能性があります。 Appleに[バグレポート](http://bugreport.apple.com)を提出する必要があります。 –