UITextField を取得しました。これをクリックすると、キーボードがポップアップします。ストーリーボードを使用して UITextField を追加しましたが、キーボードがポップアップしたときにボタンを無効にしたいと考えています。これどうやってするの?
ボタンを無効にする場合:[self.howButton setEnabled:NO];
しかし、これをどこに置くのですか?
UITextField を取得しました。これをクリックすると、キーボードがポップアップします。ストーリーボードを使用して UITextField を追加しましたが、キーボードがポップアップしたときにボタンを無効にしたいと考えています。これどうやってするの?
ボタンを無効にする場合:[self.howButton setEnabled:NO];
しかし、これをどこに置くのですか?
キーボード ステートメントを に追加し、表示されnotifacticon
たらボタンを無効にし、非表示になったらボタンを有効にします。
init でオブザーバーを追加する
- (void)init
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
}
show and hide メソッドを実現する
- (void)keyboardWillHide
{
[self.howButton setEnabled:YES];
}
- (void)keyboardWillShow
{
[self.howButton setEnabled:NO];
}
クラスが dealloc の場合、最後にオブザーバーを削除します
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
UIKeyboardWillShowNotification に登録する
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
keyboardWillShow メソッドで、ボタンを無効にします。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
上記の通知に登録することで、必要に応じてボタンを再度有効にすることができます。