1

テキストフィールドでカスタマイズされた UITableViewCell があります。セルのテキストフィールドは、デリゲート関数を呼び出すように設定されています。中身

  -(BOOL)textFieldShouldReturn:(UITextField *)textField{

                 [[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];

                  [[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];



                   if(textField == fromTF){

                        fromTF.text = [[[fromTF.text substringToIndex:2] stringByAppendingString:@":"] stringByAppendingString:[fromTF.text substringFromIndex:2]];
                        [toTF becomeFirstResponder];
                        return YES;
                    }
                    if(textField == toTF){
                        [toTF resignFirstResponder];
                        [intTF becomeFirstResponder];
                        return YES;

                      }

             return YES;
} 

これはデリゲート メソッドがカスタム セルで呼び出されます。ただし、呼び出されたときに、「return」キーを押しても UIKeyBoardWillHideNotification addobserver オブジェクトは削除されません。これを解決する方法はありますか?

4

2 に答える 2

1

このようにしてみてください

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{

  [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}

また、このリンクを確認してくださいtextFieldShouldBeginEditing + UIKeyboardWillShowNotification + OS 3.2

それはあなたを助けるかもしれません。

于 2013-04-26T05:32:42.073 に答える