-1

いくつかのテキストフィールドを持つカスタムテーブルセルに取り組んでいます。ボタンを押す方法で、行を動的に追加/削除します。しかし、キーボードが画面に表示され、ボタンが押されると、アプリケーションがクラッシュします。

4

1 に答える 1

3

問題を解決するために、非常に単純な2行の方法を使用します

最初に Bool の isKeyBoardHide を書きます。

次にViewDidLoadでこのコードを書きます

// Listen for keyboard appearances and disappearances
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(keyboardDidShow:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardDidHide:)
                                             name:UIKeyboardDidHideNotification
                                           object:nil];

これらの 2 つのメソッドを記述して、現在のステータスについて bool を更新します

- (void)keyboardDidShow: (NSNotification *) notif{
    isKeyBoardHide = NO;
}

- (void)keyboardDidHide: (NSNotification *) notif{
    isKeyBoardHide = YES;
}

そのコードを実装するだけで確認したい場合

if(!isKeyBoardHide) {
// Dismiss Keyboard
[self.view endEditing:YES] 
} else {

//keyboard is already hidden
}

このクラッシュを解決するための非常にシンプルで簡単な方法。

于 2013-09-06T13:07:33.403 に答える