RTL语言中的UITextView对齐方式

时间:2013-04-30 04:27:13

标签: iphone ios objective-c

我正在使用Xcode 4.6.2并定位iOS 6及更高版本。 我已经为我的问题创建了示例代码。

.h文件中的代码

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UITextViewDelegate>

@property (strong, nonatomic) IBOutlet UITextView *myTextView;

- (IBAction)btnLeftAlignment:(id)sender;
- (IBAction)btnCenterAlignment:(id)sender;
- (IBAction)btnRightAlignment:(id)sender;
- (IBAction)btnJustifiedAlignment:(id)sender;


@end

.m文件中的代码

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize myTextView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.myTextView.delegate = self;


}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)btnLeftAlignment:(id)sender
{
    myTextView.textAlignment = NSTextAlignmentLeft;
}

- (IBAction)btnCenterAlignment:(id)sender
{
    myTextView.textAlignment = NSTextAlignmentCenter;
}

- (IBAction)btnRightAlignment:(id)sender
{
    myTextView.textAlignment = NSTextAlignmentRight;
}

- (IBAction)btnJustifiedAlignment:(id)sender
{
    myTextView.textAlignment = NSTextAlignmentJustified;
}

@end

界面设计

http://d.pr/i/oP7G

http://d.pr/i/1TM

问题在于:

在TextView中添加一些文本后,如果键盘为英文,则NSTextAlignment工作正常。 但是,如果我将键盘更改为阿拉伯语并写入任何内容,NSTextAlignment将不会响应,它将不会更改对齐。

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

使用textfield delegates

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

并根据输入的文字设置对齐

只要用户在文本字段中键入新字符或删除现有字符,文本字段就会调用此方法。在这里,您可以使用新的NSString替换输入,您可以将字符从右向左放置。

也设置

textView.textAlignment = UITextAlignmentRight;

在右侧移动提示。

答案 1 :(得分:0)

选择UITextView,然后在对齐部分中选择属性检查器选择第四个(等于)对齐