点击 UITextField iPad 后 UIPopover 中的 datePicker

Posted

技术标签:

【中文标题】点击 UITextField iPad 后 UIPopover 中的 datePicker【英文标题】:datePicker in UIPopover after tapping on UITextField iPad 【发布时间】:2013-01-07 11:42:23 【问题描述】:

点击UITextField 后,我想在 iPad 上创建带有UIDatePickerUIPopover

我使用下面的代码这样做,但我不知道tempButton.frame 代表什么或tempButton 是什么。

是否可以使用故事板做同样的事情?提前致谢。

UIViewController* popoverContent = [[UIViewController alloc] init]; //ViewController

UIView *popoverView = [[UIView alloc] init];   //view
popoverView.backgroundColor = [UIColor blackColor];

UIDatePicker *datePicker=[[UIDatePicker alloc]init];//Date picker
datePicker.frame=CGRectMake(0,44,320, 216);
datePicker.datePickerMode = UIDatePickerModeDateAndTime;
[datePicker setMinuteInterval:5];
[datePicker setTag:10];
[datePicker addTarget:self action:@selector(Result) forControlEvents:UIControlEventValueChanged];
[popoverView addSubview:datePicker];

popoverContent.view = popoverView;
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
popoverController.delegate=self;
[popoverContent release];

[popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
[popoverController presentPopoverFromRect:tempButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];//tempButton.frame where you need you can put that frame

【问题讨论】:

tempButton 是放置在 UITextfield 上的自定义按钮。因此,当您点击按钮时会出现弹出窗口。 @darshana 谢谢 Darshana 终于让它工作了。但是如何选择值我的意思是结果方法。目前它崩溃了。 【参考方案1】:

至于按钮本身,可以使用UITextField的rightView属性。

也可以为日期选择器视图使用故事板。

1) 将 ViewController 拖到情节提要中。

2) 在 Identity Inspector 中将其类设置为您的自定义类。

3) 在 Identity Inspector 中为“StoryBoard ID”设置一个值。

4) 使用您的 datePicker 设置视图。

5) #import "PopoverContentViewController.h" 到你正在展示的 ViewController。

当你展示你的弹出框时:

PopoverContentViewController *popoverContent = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"];
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
popoverController.delegate=self;
[popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
[popoverController presentPopoverFromRect:myTextField.myRightView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

您可能需要设置一个委托,以便UIDatePicker 可以与呈现的ViewController 进行通信。

【讨论】:

谢谢先生。但我有一些疑问,我不能在身份检查器中设置自定义类。请你能更清楚地说明一下 PopoverContentViewController.h 中的内容和自定义类。非常感谢非常感谢您的帮助。抱歉先生的麻烦。 当我在 ipad 中拖放 datePicker 时,它会覆盖整个宽度 Jacob,你的自定义类需要是 UIViewController 的子类,否则它不会让你在身份检查器中设置它。因此,当您创建自定义类时,请确保从“子类”选项中选择 UIViewController。 我还是一头雾水。我创建了一个新项目,它已经有一个视图控制器,所以我将 uitextfield 拖放到其中。我在情节提要中拖放了另一个视图控制器并拖放了 datePicker 但我没有在身份检查器中看到 ant 子类。现在我真的没有知道做什么。真的很抱歉。我应该接受这个答案并在同一问题上发布另一个问题吗? Jacob,等我回家再解释。目前在我的移动设备上仅限于 cmets。

以上是关于点击 UITextField iPad 后 UIPopover 中的 datePicker的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 iPad 上模态视图的底部偏移量?

iPad 和 iPhone 中的 UITextField 键盘类型

如何制作更圆润的 UITextField?就像 iPad 上 Safari 中的搜索栏

iPad - 带有 UITextField 的 UITableView - 方向改变时自动调整大小问题

添加到 UITableViewCell 的 contentView 的 UITextField 在 Popover 中无法正确显示(iPad、iOS 4.2)

UITableViewCell 中的 UITextField 在 iPad 上没有键盘,但 iPhone 可以