NSTextView китайские / юникод-символы - PullRequest
2 голосов
/ 25 ноября 2010

У меня есть кусок текста, нарисованный в моем приложении какао, но мне также нужно нарисовать его в NSTextField и NSTextView и выглядеть точно так же, они все обычно рисуются хорошо, но если в тексте есть юникод или китайские символы, то NSTextView имеет большие межстрочные интервалы, он отлично работает в поле nstext и при обычном рисовании.

Я перепробовал все настройки, которые смог найти, но ни один из них не затрагивал эту проблему. Кто-нибудь сталкивался с этой проблемой раньше и знает об исправлении?

Вы можете увидеть проблему на скриншоте в http://cl.ly/3e0U1T2U2G2z341j3O3T NSTextView Chinese/Unicode Characters

Вот мой тестовый код, чтобы показать проблему

NSTextField *textField = [[NSTextField alloc] initWithFrame:NSMakeRect(5, 50, 100, 100)];
[textField setStringValue:@"え?移転!? TESTTestTer 友達の旦那の店 THIS IS A TEST THIS IS A TEST"];
[textField setBordered:NO];
[textField setBezeled:NO];
[textField setAllowsEditingTextAttributes:YES];
[textField setDelegate:self];
[textField setFont:[NSFont fontWithName:@"LucidaGrande" size:12.0]];
[textField setTextColor:[NSColor colorWithDeviceRed:(74.0/255.0) green:(74.0/255.0) blue:(74.0/255.0) alpha:1.0]];
[[window contentView] addSubview: textField];

NSTextView *textView = [[NSTextView alloc] initWithFrame:NSMakeRect(200, 50, 100, 100)];
[textView setString:@"え?移転!? TEST TestTer 友達の旦那の店 THIS IS A TEST THIS IS A TEST"];
[textView setDelegate:self];
[textView setFont:[NSFont fontWithName:@"LucidaGrande" size:12.0]];
[textView setTextColor:[NSColor colorWithDeviceRed:(74.0/255.0) green:(74.0/255.0) blue:(74.0/255.0) alpha:1.0]];
[[textView layoutManager] setTypesetterBehavior:NSTypesetterBehavior_10_2_WithCompatibility];
[[textView textContainer] setLineFragmentPadding:0.0];
[[window contentView] addSubview: textView];
...