1

UITextField を取得しました。これをクリックすると、キーボードがポップアップします。ストーリーボードを使用して UITextField を追加しましたが、キーボードがポップアップしたときにボタンを無効にしたいと考えています。これどうやってするの?

ボタンを無効にする場合:[self.howButton setEnabled:NO]; しかし、これをどこに置くのですか?

4

2 に答える 2

3

キーボード ステートメントを に追加し、表示され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];
}
于 2013-03-21T08:29:22.073 に答える
0

UIKeyboardWillShowNotification に登録する

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];

keyboardWillShow メソッドで、ボタンを無効にします。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];

上記の通知に登録することで、必要に応じてボタンを再度有効にすることができます。

于 2013-03-21T08:29:48.923 に答える