我有一个UITextView
与RTL对齐。
如果用户输入文字并取消键盘,则对齐仍为 - RTL。
但是如果用户选择空字符串,我将字符串更改为占位符,并且对齐方式将转换为LTR。
我试图明确要求RTL,但它没有帮助。
-(void)cancelPad{
[userTextView resignFirstResponder];
userTextView.textAlignment = UITextAlignmentRight;
userTextView.text = @"place holder text";
}
-(void)doneWithNumberPad{
if ([userTextView.text isEqualToString:@""]) {
[self cancelPad];
}
[userTextView resignFirstResponder];
userTextView.textAlignment = UITextAlignmentRight;
}
有人有什么想法吗?
答案 0 :(得分:2)
最后我刚添加了一个带有占位符文字的标签。 显示键盘时,将隐藏占位符标签。 如果键盘被解除为空文本,则会再次显示占位符标签。 如果有更合适的解决方案,请不要犹豫,在此发布。
答案 1 :(得分:1)
而不是:
userTextView.text = ""
你应该把:
userTextView.text = [NSString stringWithFormat:@"\u202b"];
这是“启动RTL”的UTF-8字符
答案 2 :(得分:0)
第一: 在.h文件中添加此
UIViewController<UITextFieldDelegate>
将您的文字字段分配给此
userTextView.delegate =self;
然后使用此方法并将您的代码放入
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField{
}
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
}
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
}
示例:
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
if ([userTextView.text isEqualToString:@""]) {
[self cancelPad];
}
[userTextView resignFirstResponder];
userTextView.textAlignment = UITextAlignmentRight;
}