0

私はこのコードを試しています。の1 つで、viewController次のスニペットを使用しています。

- (BOOL)textView:(UITextView *)textView1 shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

を押してキーボードを閉じることがウェブでわかりましたreturnButton。this から呼び出すとうまくいきますviewController。ルートKLNoteViewControllerでは、ハンドル状態の変更方法に通知を追加しています:

- (void) setState:(KLControllerCardState)state animated:(BOOL) animated
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"refresh" object:self];

    if (animated)
    {
        [UIView animateWithDuration:self.noteViewController.cardAnimationDuration animations:^{
            [self setState:state animated:NO];
        }];
        return;
    }
    //Full Screen State
    if (state == KLControllerCardStateFullScreen)
    {
        [self expandCardToFullSize: animated];
        [self setYCoordinate: 0];
    }
    //Default State
    else if (state == KLControllerCardStateDefault)
    {
        [self shrinkCardToScaledSize: animated];
        [self setYCoordinate: originY];
    }
    //Hidden State - Bottom
    else if (state == KLControllerCardStateHiddenBottom)
    {
        //Move it off screen and far enough down that the shadow does not appear on screen
        [self setYCoordinate: self.noteViewController.view.frame.size.height + abs(self.noteViewController.cardShadowOffset.height)*3];
    }
    //Hidden State - Top
    else if (state == KLControllerCardStateHiddenTop)
    {
        [self setYCoordinate: 0];
    }

    //Notify the delegate of the state change (even if state changed to self)
    KLControllerCardState lastState = self.state;
    //Update to the new state
    [self setState:state];
    //Notify the delegate
    if ([self.delegate respondsToSelector:@selector(controllerCard:didChangeToDisplayState:fromDisplayState:)]) {
        [self.delegate controllerCard:self
              didChangeToDisplayState:state fromDisplayState: lastState];
    }
}

追加のオブザーバーを追加します。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissKeyboard) name:@"refresh" object:nil];

毎秒。viewController_ -viewDidLoadしたがって、このオブザーバーをUITextFieldすべて正常に使用すると、viewController使用UIText View中にログでクラッシュします。

[ NSStackBlock isEqualToString:]: 認識されないセレクターがインスタンス 0xbfffd228 に送信されました

私はウェブで検索しましたが、それが何であるかを説明するリンクが2つしか見つかりNSStackBlockませんでした。問題を解決するのに十分な情報ではありません. 誰かがそれが何であるかを説明できますか?

4

0 に答える 0