Ios UITextField无法居中占位符和更改键盘颜色

Ios UITextField无法居中占位符和更改键盘颜色,ios,objective-c,uitableview,uitextfield,Ios,Objective C,Uitableview,Uitextfield,实际上,我正在将一份登记表输入到我的iOs应用程序中 我对iOs还是一个新手,但由于uiTableViewCell定制和uiTextField,我成功地制作了一张好看的注册表 我现在面临两个问题,实际上我解决不了: 1当我将我的UITextField对齐到中心时,它并没有真正居中,或者可能居中,但它开始将我的字符串写在中心,而不是字符串本身居中,即使我用单元格框初始化了我的TextField,如有必要,请参见图片 2我设法改变了UITextField文本的颜色,但当键盘显示时,它实际上又开始写黑

实际上,我正在将一份登记表输入到我的iOs应用程序中

我对iOs还是一个新手,但由于uiTableViewCell定制和uiTextField,我成功地制作了一张好看的注册表

我现在面临两个问题,实际上我解决不了:

1当我将我的UITextField对齐到中心时,它并没有真正居中,或者可能居中,但它开始将我的字符串写在中心,而不是字符串本身居中,即使我用单元格框初始化了我的TextField,如有必要,请参见图片

2我设法改变了UITextField文本的颜色,但当键盘显示时,它实际上又开始写黑色而不是白色。我能换这个吗

对不起,我的英语不好,不是我的母语,但仍在努力,谢谢你的帮助

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   NSString *identifier = @"id";
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
   if (cell == nil){
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
   }
   if (indexPath.section == 0){
    self.LastName = [[UITextField alloc] initWithFrame:cell.contentView.bounds];
    self.LastName.placeholder= @"Name";
    self.LastName.autocorrectionType = UITextAutocorrectionTypeNo;
    self.LastName.delegate = self;
    self.LastName.textAlignment = NSTextAlignmentCenter;
    [self.LastName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

    [cell.contentView addSubview:self.LastName];
}
else if (indexPath.section == 1)
    cell.textLabel.text = @"Name";

cell.textLabel.textAlignment = NSTextAlignmentCenter;

第一个单元格是我的UITextField,第二个是我的正常中心单元格我没有10个声誉,所以我可以给你们一个图片链接,对不起

您只是更改占位符文本的颜色,要更改文本字段中文本的颜色:

 [self.LastName setTextColor:[UIColor whiteColor]];
要将占位符和文本字段的文本对齐到中心,请执行以下操作:

[self.LastName setTextAlignment:NSTextAlignmentCenter];

关于第二个问题:

UITextField中有defaultTextAttributes属性,可用于iOS7+中可用的颜色

NSMutableDictionary* textFieldAttrib = [[self.textField defaultTextAttributes] mutableCopy];
textFieldAttrib[@"NSColor"] = [UIColor redColor];
self.textField.defaultTextAttributes = textFieldAttrib;
您还可以通过iOS6+中提供的attributedPlaceholder属性更改占位符颜色

NSString *placeHolderText = @"some placeholder";
NSAttributedString *placeholder = [[NSAttributedString alloc] initWithString: placeHolderText
                                                                  attributes:@{NSForegroundColorAttributeName : [UIColor greenColor]}];

self.textField.attributedPlaceholder = placeholder;

您想将文本居中放置在文本字段还是将文本字段本身居中?我希望得到与cell.textlab.textAlignment相同的结果,将字符串居中放置在单元格中,直到右角才开始写入。我不知道它是否足够清晰。简单地设置颜色对键盘问题很有效,谢谢,但我仍然得到与图片上相同的结果,即使您对对齐进行了修复,它仍保持对齐字符串的开头,而不是字符串本身,遗憾的是: