首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UITextfield和undo导致崩溃

使用UITextfield和undo导致崩溃
EN

Stack Overflow用户
提问于 2014-04-21 03:17:13
回答 1查看 1.2K关注 0票数 1

今天我完成了我的第一个应用程序,我正在测试我的应用程序。好吧,我发现了一个bug,我找不到它的来源。在我的应用程序中,我有两个UITextfields。当用户填充其中一个时,另一个会使用委托方法textField:shouldChangeCharactersInRange:replacementString:自动完成,这里是该方法。当用户在任何文本字段中键入任何内容并按下iPad键盘上的undo按钮或摇动iPhone然后按下undo时,我的应用程序就会崩溃。下面是我收到的错误。

代码语言:javascript
复制
(Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSBigMutableString substringWithRange:]: Range {0, 2} out of bounds; string length 0').

我真的很感谢你的帮助。

代码语言:javascript
复制
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    NSString *stringToValidate = [[textField text] stringByReplacingCharactersInRange:range withString:string];

    if ([stringToValidate isEqualToString:@""]) {

        self.scoreToAddOfTeam1.text = nil;

        self.scoreToAddOfTeam2.text = nil;



        return YES;

    }

    if ([self validateInputsInsideAnNSString:stringToValidate]) {

        if (textField == self.scoreToAddOfTeam1) {

            self.scoreToAddOfTeam2.text = [self autocompleteOthersTeamPointsToAdd:stringToValidate];

        } else {

            self.scoreToAddOfTeam1.text = [self autocompleteOthersTeamPointsToAdd:stringToValidate];

        }

    } else {

        if (textField == self.scoreToAddOfTeam1) {

            self.scoreToAddOfTeam2.text = nil;

        } else {

            self.scoreToAddOfTeam1.text = nil;

        }

    }



    return YES;

}

-(NSString *) autocompleteOthersTeamPointsToAdd: (NSString *) stringBasedToCalculate {

    NSString *myString = [NSString stringWithFormat:@"%ld", (long)100 - [stringBasedToCalculate integerValue]];

    return myString;
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-26 15:24:15

我认为您必须在应用程序中更改UIUndoManager的实现。查看此教程here

如果你不想在你的应用中处理抖动来撤消,那么你可以使用以下命令禁用它:

代码语言:javascript
复制
    [UIApplication sharedApplication].applicationSupportsShakeToEdit = NO;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23186566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档