占位符没有采用 NSTextAlignmentNatural
placeholder is not taking NSTextAlignmentNatural
我有一个应用 UITextField
。
我的应用程序是英语 - 阿拉伯语应用程序。
现在我的情况如下。
addPostVideoURL.backgroundColor = [UIColor clearColor];
addPostVideoURL.textAlignment = NSTextAlignmentNatural; <-- Setting alignment
addPostVideoURL.textColor = pGray_343434;
addPostVideoURL.placeholder = localize(@"videoURL");
[addPostVideoURL setValue:pGray_343434 forKeyPath:@"_placeholderLabel.textColor"];
addPostVideoURL.font = [self adjustDefaultFont:40];
addPostVideoURL.autocorrectionType = UITextAutocorrectionTypeNo;
如果你看到了,我已经将对齐文本设置为 NSTextAlignmentNatural
。我这样做是因为如果键盘是阿拉伯语(&我的应用程序是英语或阿拉伯语),我希望文本字段从右侧开始。
当我将键盘更改为英语时,文本字段从 LTR 开始,如果我将键盘更改为阿拉伯语,文本字段从 RTL 开始。 然而,我的占位符总是在左边。
如何根据应用语言对齐占位符?
为了解决这个问题,下面是我所做的...
在我下面添加的.pch
#define myDirection001 ([localize(@"myLang") isEqualToString:@"en"]) ? NSTextAlignmentLeft : NSTextAlignmentRight
然后有如下代码。
addPostVideoURL.backgroundColor = [UIColor clearColor];
addPostVideoURL.textAlignment = myDirection001;
addPostVideoURL.textColor = pGray_343434;
addPostVideoURL.placeholder = localize(@"videoURL");
[addPostVideoURL setValue:pGray_343434 forKeyPath:@"_placeholderLabel.textColor"];
addPostVideoURL.font = [self adjustDefaultFont:40];
addPostVideoURL.autocorrectionType = UITextAutocorrectionTypeNo;
确保已设置委托,因为我们现在要调用委托。
调用委托方法。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textField.textAlignment = NSTextAlignmentNatural;
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
textField.textAlignment = (textField.text.length==0) ? myDirection001 : NSTextAlignmentNatural;
return YES;
}
我有一个应用 UITextField
。
我的应用程序是英语 - 阿拉伯语应用程序。
现在我的情况如下。
addPostVideoURL.backgroundColor = [UIColor clearColor];
addPostVideoURL.textAlignment = NSTextAlignmentNatural; <-- Setting alignment
addPostVideoURL.textColor = pGray_343434;
addPostVideoURL.placeholder = localize(@"videoURL");
[addPostVideoURL setValue:pGray_343434 forKeyPath:@"_placeholderLabel.textColor"];
addPostVideoURL.font = [self adjustDefaultFont:40];
addPostVideoURL.autocorrectionType = UITextAutocorrectionTypeNo;
如果你看到了,我已经将对齐文本设置为 NSTextAlignmentNatural
。我这样做是因为如果键盘是阿拉伯语(&我的应用程序是英语或阿拉伯语),我希望文本字段从右侧开始。
当我将键盘更改为英语时,文本字段从 LTR 开始,如果我将键盘更改为阿拉伯语,文本字段从 RTL 开始。 然而,我的占位符总是在左边。
如何根据应用语言对齐占位符?
为了解决这个问题,下面是我所做的...
在我下面添加的.pch
#define myDirection001 ([localize(@"myLang") isEqualToString:@"en"]) ? NSTextAlignmentLeft : NSTextAlignmentRight
然后有如下代码。
addPostVideoURL.backgroundColor = [UIColor clearColor]; addPostVideoURL.textAlignment = myDirection001; addPostVideoURL.textColor = pGray_343434; addPostVideoURL.placeholder = localize(@"videoURL"); [addPostVideoURL setValue:pGray_343434 forKeyPath:@"_placeholderLabel.textColor"]; addPostVideoURL.font = [self adjustDefaultFont:40]; addPostVideoURL.autocorrectionType = UITextAutocorrectionTypeNo;
确保已设置委托,因为我们现在要调用委托。
调用委托方法。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { textField.textAlignment = NSTextAlignmentNatural; return YES; } - (BOOL)textFieldShouldReturn:(UITextField *)textField{ textField.textAlignment = (textField.text.length==0) ? myDirection001 : NSTextAlignmentNatural; return YES; }