【发布时间】:2023-03-14 04:20:02
【问题描述】:
我在输入字段上显示 pickerView 单击它在其他 iOS 上运行良好,但是当我更新到 iOS 8 时它不起作用。当我单击输入字段时,它不会显示日期选择器。
这是我正在使用的代码。
- (void)textFieldDidBeginEditing:(UITextField *)aTextField{
appDelegate.recentAddSowID = @"";
if (aTextField == dateTextField) {
[dateTextField resignFirstResponder];
pickerViewPopup = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"" destructiveButtonTitle:nil otherButtonTitles:nil];
pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 0, 0)];
pickerView.datePickerMode=UIDatePickerModeDate;
pickerView.hidden = NO;
pickerView.date = [NSDate date];
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
pickerToolbar.barStyle = UIBarStyleBlackOpaque;
[pickerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)];
[barItems addObject:doneBtn];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed:)];
[barItems addObject:cancelBtn];
[pickerToolbar setItems:barItems animated:YES];
[pickerViewPopup addSubview:pickerToolbar];
[pickerViewPopup addSubview:pickerView];
[pickerView addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[dateTextField setInputView:pickerView];
[pickerViewPopup showInView:self.view];
[pickerViewPopup setBounds:CGRectMake(0,0,320, 464)];
}
}
我正在 iPhone 5S 上进行测试。
【问题讨论】:
-
设置断点。该方法是否被调用?
-
你检查设备了吗?对我来说,它不会出现在模拟器中,但在设备上可以正常工作
-
@Daiji-Djan 方法被称为它在 ios 7 上的模拟器上运行良好
-
@Shanti K 是的,它适用于模拟器,但不适用于设备,因为模拟器是 iOS7
-
我不是这个意思。如果它不起作用 - 它是否被调用。在ios8上
标签: ios iphone uidatepicker uiactionsheet