点击 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 上创建带有UIDatePicker
的UIPopover
。
我使用下面的代码这样做,但我不知道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 和 iPhone 中的 UITextField 键盘类型
如何制作更圆润的 UITextField?就像 iPad 上 Safari 中的搜索栏
iPad - 带有 UITextField 的 UITableView - 方向改变时自动调整大小问题
添加到 UITableViewCell 的 contentView 的 UITextField 在 Popover 中无法正确显示(iPad、iOS 4.2)