Я создаю гибридное приложение в iOS, где мне нужно открыть средство выбора даты при щелчке элемента управления на моей странице HTML, загруженной в мой веб-просмотр. Ниже приведен мой HTML для этого конкретного элемента управления и связанного с ним метода javascript:
<input name="date" id="creationDate" class=dateET type="date" onclick="onDateSelected();" readonly />
function onDateSelected()
{
console.log('onDateSelected');
var dateOn = document.getElementById('creationDate').value;
document.location.href = "#mCrm#onDateSelected#mCrm#"+dateOn;
}
В Objective C:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *requestString = [[request URL]absoluteString];
if (!([requestString rangeOfString:@"onDateSelected"].location == NSNotFound))
{
[self onDateSelected:requestString];
return FALSE;
}
else if (!([requestString rangeOfString:@"onAddCustomerBtnClick"].location == NSNotFound))
{
}
return TRUE;
}
-(void)onDateSelected:(NSString *)reqString
{
custDate = [[UIDatePicker alloc] init];
custDate.datePickerMode = UIDatePickerModeDate;
UIToolbar* toolbar = [[UIToolbar alloc] init];
toolbar.barStyle = UIBarStyleDefault;
[toolbar sizeToFit];
//to make the done button aligned to the right
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem* doneButton = nil;
// if(sender == self.mCdob)
doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone target:self
action:@selector(doneDateOfBirth:)];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]];
//custom input view
// sender.inputView = datePickerContact;
// sender.inputAccessoryView = toolbar;
}
Проблема в том, что при нажатии на элементе управления типом даты выбор даты не открывается. Любая помощь приветствуется!
глупая ошибка на самом деле.. Я забыл добавить следующий метод:
-(void)doneDateOfCreation:(id) sender
{
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateStyle:NSDateFormatterMediumStyle];
//[df setDateFormat:@"d/MM/YYYY"];
NSString* date = [df stringFromDate:[custDate date]];
NSDate * st = [df dateFromString:date];
NSLog(@"date= %@",[df stringFromDate:st]);
[custDate resignFirstResponder]; //hides the pickerView
[custDate removeFromSuperview];
[toolbar removeFromSuperview];
}
Также добавьте [self.view addSubview:toolbar];
к методу onDateSelected
onDateSelected
выполняется?