単純なようですが、なぜ機能しないのかわかりません。
私の .h ファイルでは、次のように宣言しました。BOOL keyboardIsUp;
そして、私の .m ファイルで:
-(void)keyboardWillShow {
NSLog(@"before:");
NSLog(keyboardIsUp? @"Yes" : @"No");
NSLog(@"keyboardWillShow");
keyboardIsUp = YES;
NSLog(@"after:");
NSLog(keyboardIsUp? @"Yes" : @"No");
...
}
-(void)keyboardWillHide {
NSLog(@"before:");
NSLog(keyboardIsUp? @"Yes" : @"No");
NSLog(@"keyboardWillHide");
keyboardIsUp = NO;
NSLog(@"after:");
NSLog(keyboardIsUp? @"Yes" : @"No");
...
}
-(BOOL)keyboardStatus{
NSLog(@"keyboardStatus");
NSLog(keyboardIsUp? @"Yes" : @"No");
return keyboardIsUp;
}
メソッドは間違いなく正しく呼び出されており (これは NSLog メッセージから確認できます) NSLog
、最初の 2 つのメソッド内のメッセージで、BOOL が (関数の範囲内で) 正しく設定されていることがわかります。
しかし、私が呼び出すとkeyboardStatus
、常に「NO」と記録されます
何か案は?コードの残りの部分を精査しましたが、他の場所の値は絶対に変更していませkeyboardIsUp
ん。