私はクラスにnilに設定されているプロパティを持っていますが、何をしているのかわかりません。私はそれにシンボリックなブレークポイント(ウォッチポイント)を設定しましたが、それをキャッチしていません、私はセッターにも典型的なブレークポイントを設定して、それをキャッチしていません。プロパティは不思議なことに背中の背後でゼロに設定されています
activeTextField
プロパティの目的は何ですか? ユーザーがフィールドにデータを入力すると、表示されているキーボードによってそのフィールドがブロックされると、フィールドを表示するのに十分な画面がスライドされます。
だから、何かが値を設定textFieldDidBeginEditing
のポイント間で起こっている、とキーボードが表示され、文字通り一つの他の直後、および毎回、keyboardWasShown
に、私のactiveTextField
= nilのです。
これがnilに設定されている理由を確認するにはどうすればよいですか?
@property (nonatomic, retain) UITextField *activeTextField;
-(void)setActiveTextField:(UITextField *)activeTextField
{
_activeTextField = activeTextField;
}
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
self.activeTextField = textField;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
self.activeTextField = nil;
}
-(void)keyboardWasShown:(NSNotification *)aNotification
{
if (self.activeTextField == nil)
{
return;
}
textFieldDidEndEditingが呼び出されていないことを確認しましたか? –
keybaordWasShownとtextFieldDidBeginEditingが同じスレッドで実行されていることを確認しましたか? –
NSLog on textFieldDidEndEditingそれが呼び出されるかどうかを確認します。それは確かに確かです。 – GeneCode