我正在开发一个具有标签的应用程序,它以HH:MM:SS格式显示事件的持续时间。现在我必须使它可编辑。所以我在文本字段中获取值。
是否可以比较更改后的值以同样的格式以及23:59:59的范围进行验证?
* 或者我使用UIDatePicker获取值*
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用正则表达式来验证特定字符串。但对于您的问题,您应该使用日期格式为HH:MM:SS的日期选择器。你可以选择你喜欢的任何选项。
答案 1 :(得分:0)
由于没有给出代码,因此分享想法以执行此特定任务的问题。
如同关于UITextField一样,UITextField对象是一个显示可编辑文本的控件。根据{{3}}。
UITextFieldDelegate协议将发送到文本字段委托的消息定义为编辑其文本的序列的一部分。
该协议的所有方法都是可选的。
您可以使用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
表示如果要更改指定的文本,则调用委托。当用户逐字符输入文本时,您可以根据要求(UITextFieldDelegate)验证文本。
好像你想要了解更多关于这些委托函数的信息,请点击给定的链接。
如果您只想查找从用户那里获取日期的方式,那么As in iOS you can validate String using the regular expression。这是Apple提供的非常好的方式。
答案 2 :(得分:0)
您可以使用NSDateFormatter将字符串转换为Date。如果您不符合形式,nsdateformatter将返回nil值。
NSString *dateForTest=@"12:15:36";
NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSDate *date=[dateFormatter dateFromString:dateForTest];
在这里查看您的资料是否为零或日期值?
答案 3 :(得分:0)
尝试以下方法:
NSString *dateFromTextfield = @"02:02:2015";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM:dd:yyyy"];// here set format which you want...
NSDate *date = [dateFormat dateFromString:dateFromTextfield];
然后检查
//set int position to 2 and 5 as it contain : for a valid date
unichar chr = [dateFromTextfield characterAtIndex:position];
NSLog(@"%c", chr);
if (chr == ':'){
//valid date
}
else{
//not a valid date
}