无法在 iOS 11 GM 中更改多个文本字段颜色

Posted

技术标签:

【中文标题】无法在 iOS 11 GM 中更改多个文本字段颜色【英文标题】:Can't change multiple textfield colors in iOS 11 GM 【发布时间】:2017-09-13 14:12:30 【问题描述】:

ios 10.3 模拟器上工作,但在您点击文本字段之前不能在 iOS 11 上工作。

层次结构:

下面的示例代码。

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic) UITextField *textField1;
@property (nonatomic) UITextField *textField2;
@end

@implementation ViewController

- (void)viewDidLoad 
    [super viewDidLoad];

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 50, 50, 30)];
    textField.borderStyle = UITextBorderStyleLine;
    [self.view addSubview:textField];
    self.textField1 = textField;

    UITextField *textField2 = [[UITextField alloc] initWithFrame:CGRectMake(0, 100, 50, 30)];
    textField2.borderStyle = UITextBorderStyleLine;
    [self.view addSubview:textField2];
    self.textField2 = textField2;

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 200, 50, 50)];
    button.backgroundColor = [UIColor blueColor];
    [button addTarget:self action:@selector(changeColor) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:self.textField1];
    [self.view addSubview:self.textField2];
    [self.view addSubview:button];


- (void)changeColor

    self.textField1.textColor = [UIColor greenColor];
    self.textField2.textColor = [UIColor greenColor];

【问题讨论】:

你能澄清你的问题吗?实际发生了什么以及何时发生? 我正在尝试在点击按钮时更改两个 UITextField 的文本颜色。只有一个文本字段实际更改文本颜色。在图像中的检查器中,Xcode 认为颜色是绿色 (R:0 G:1 B:0),但显示的仍然是黑色。我目前在应用商店中有一个应用正在做同样的事情,但在 iOS 10 中这不会发生。 是的,我也有这个问题。用令人耳目一新的文字回答对我有用。 这不是解决方案。我们使用递归例程设置所有按钮、文本字段等的颜色。重置该例程中的文本会清空所有不可接受的字段。 【参考方案1】:

试试这个。

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic) UITextField *textField1;
@property (nonatomic) UITextField *textField2;
@end

@implementation ViewController

- (void)viewDidLoad 
    [super viewDidLoad];

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 50, 50, 30)];
    textField.borderStyle = UITextBorderStyleLine;
    [self.view addSubview:textField];
    self.textField1 = textField;

    UITextField *textField2 = [[UITextField alloc] initWithFrame:CGRectMake(0, 100, 50, 30)];
    textField2.borderStyle = UITextBorderStyleLine;
    [self.view addSubview:textField2];
    self.textField2 = textField2;

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 200, 50, 50)];
    button.backgroundColor = [UIColor blueColor];
    [button addTarget:self action:@selector(changeColor) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:self.textField1];
    [self.view addSubview:self.textField2];
    [self.view addSubview:button];


- (void)changeColor

    self.textField1.textColor = [UIColor greenColor];
    self.textField2.textColor = [UIColor greenColor];
    self.textField1.text = self.textField1.text;

只需重置 textfiled1 文本。

【讨论】:

以上是关于无法在 iOS 11 GM 中更改多个文本字段颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在Cordova iOS项目中更改文本字段光标颜色

无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]

如何在 Cordova iOS 项目中更改文本字段光标颜色

更改自定义文本字段背景颜色和文本颜色IOS Swift

iOS 7 中 UIActivityViewControllers 的模态状态栏和导航栏文本颜色

在 iOS 9+ 中更改 UISearchBar 文本颜色