我有一个iPad应用程序(XCode5,ARC,情节提要,iOS 7)。这是问题所在(占位符和光标位于UITextField的中间):
这是创建它的代码:
- (IBAction)bSendFeedback:(UIButton *)sender {
// make the popover
UIViewController* popoverContent = [[UIViewController alloc] init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 450, 500)];
popoverView.backgroundColor = [UIColor colorWithWhite:(CGFloat)1.0 alpha:(CGFloat)1.0]; // frame color?
popoverContent.view = popoverView;
//resize the popover view shown in the current view to the view's size
popoverContent.contentSizeForViewInPopover = CGSizeMake(450, 500);
// add the UITextfield to the popover
UITextField *tf = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 450, 500)];
[tf becomeFirstResponder];
tf.delegate = self;
tf.tag = kSendFeedback;
tf.placeholder = @" Enter your comments here";
tf.backgroundColor = UIColorFromRGB(0xFFFFE0);
tf.returnKeyType = UIReturnKeyDone; // make return key read "Done"
[popoverView addSubview:tf];
// if previous popoverController is still visible... dismiss it
if ([popoverController isPopoverVisible]) {
[popoverController dismissPopoverAnimated:YES];
}
//create a popover controller
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
[popoverController presentPopoverFromRect:((UIButton *)oSendFeedback).frame inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
该图像是在iOS7下运行的;在iOS 6下运行时,它可以正常工作。如您所见,它可以工作,但光标/占位符应位于UITextField的顶部...为什么在ios&下运行时,为什么它不存在?
看来Apple已将UITextField的默认垂直对齐方式更改为UIControlContentVerticalAlignmentCenter
iOS 7中的居中()与UIControlContentVerticalAlignmentTop
iOS 6及更低版本中的顶部()。
要在所有版本中修复它,请添加此行-
tf.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
这会将光标和占位符文本放在顶部。接得好 !!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句