为什么游标不在UITextField的顶部?

Spo*_*ude 3 objective-c uitextfield ios

我有一个iPad应用程序(XCode5,ARC,Storyboards,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];
Run Code Online (Sandbox Code Playgroud)

}

该图像来自iOS7下运行; 它在iOS 6下运行时工作正常. 正如你所看到的,它有点工作,但光标/占位符应该在UITextField的顶部...任何想法为什么它在ios&下运行时不存在?

Ash*_*hok 8

看起来Apple已经将UITextField的默认垂直对齐方式更改为UIControlContentVerticalAlignmentCenteriOS 7中的center()与UIControlContentVerticalAlignmentTopiOS 6及之前版本中的top().

要在所有版本中修复它,请添加此行 -

tf.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
Run Code Online (Sandbox Code Playgroud)

这会将光标和占位符文本放在顶部.接得好 !!