0

我正在试验这段代码。在其中一个中,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];

在每个viewControllers-viewDidLoad中。因此,当这个观察者与UITextField一切正常使用时,viewController当我使用时,UIText View我的日志崩溃:

[ NSStackBlock isEqualToString:]: 无法识别的选择器发送到实例 0xbfffd228

我在网上进行了搜索,但只找到了两个链接来解释是什么NSStackBlock,它们并不能很好地为我解决问题提供信息。有人可以解释它可能是什么吗?

4

0 回答 0