如何制作苹果的可可图形用户界面控件
不
自动“翻转”包含从右向左文本的行(如阿拉伯语)?
看看我的测试用例,我打算保留星号(
**
)在打印到屏幕上的行首:
#import <Foundation/Foundation.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool *autoReleasePool = [[NSAutoreleasePool alloc] init];
NSString *str1 = @"** english first then arabic تجر\n";
NSString *str2 = @"** تجر arabic first then english\n";
[str1 writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:NULL];
[str2 writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:NULL];
[autoReleasePool release];
return 0;
}
当我在terminal.app中运行时,我得到:
$ gcc -framework Foundation test.m
$ ./a.out
** english first then arabic تجر
arabic first then english تجر **
不过,在iTerm中,这些行不会被“翻转”:
$ gcc -framework Foundation test.m
$ ./a.out
** english first then arabic تجر
** تجر arabic first then english
基于对ITerm代码的粗略检查,这似乎是由于ITerm对输出和终端的“手动”字符处理造成的。是否有任何方法可以防止在使用时发生这种“翻页”,例如,
NSTextView
要显示这些类型的字符串吗?我在苹果的文档中找不到任何答案。
我正在运行一个英文Mac OS 10.5.6,其中英文是下表中的第一种语言
系统首选项国际语言
.