我想知道是否有办法判断用户是否没有输入UITextField
说2秒钟。
如果那是不可能的,我想知道是否有办法判断用户是否在文本字段中输入错误 - 例如:
有一个UITextView
包含来自NSArray
的对象,用户必须在文本字段中输入内容并匹配文本视图中的内容。如果他们犯了错误,它会告诉他们(我需要帮助) - 注意:如果用户正确键入字符串,它会自动接受它并继续下一个 - 没有按钮提交字符串 - 它通过文本字段做到这一点。
答案 0 :(得分:2)
无论您何时处理文字更改,都可以开始NSTimer
。如果在计时器触发之前输入了更多文本,您可以在其上调用-invalidate
取消它,但如果计时器触发,则表示您没有输入任何文本。
答案 1 :(得分:1)
这是可能的,但它将涉及一些工作。您需要查看NSTimer和NSDate类以及UITextFieldDelegate协议。基本上,每次用户在文本字段中输入内容时,您都会获得一个委托方法。然后该方法缓存当前时间(通过[NSDate date])并启动一个持续时间为两秒的计时器。当计时器触发时,您可以触发一个方法来检查缓存的NSDate,以查看文本字段中的最后一个输入是否在最后两秒内。
答案 2 :(得分:0)
查看UITextFile
和UITextView
的委托方法。当用户更改字段的状态时,可以实现几种可以实现的方法。此外,如果您需要特定时间间隔的某些内容,则可以启动NSTimer
。
答案 3 :(得分:0)
在文本字段中注册文本更改事件。发生更改时,创建或更新计时器成员。如果计时器触发,您的时间已经过去。清理时,使计时器无效。
-(void) textFieldChanged:(id)sender { // UIControlEventEditingChanged
NSTimeInterval tooLong = 2.0;
if ( myTimer ) [myTimer setFireDate:[NSDate dateWithTimeIntervalSinceNow:tooLong]];
else myTimer = [[NSTimer scheduledTimerWithTimeInterval:tooLong ... repeats:NO] retain];
}