I use paragraphStyle.hyphenationFactor = 1
, but it works fine only for English text.
How to enable hyphenation in UITextView
with non-English text or set locale to UITextView
?
How to enable hyphenation in UITextView with non-English text?
Asked Answered
With this and this I found solution:
NSError *error = nil;
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"LOCALE"];
NSString *hyphenatedString = [string softHyphenatedStringWithLocale:locale error:&error];
NSString *htmlString = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"> \n"
"<style type=\"text/css\"> \n"
"html {-webkit-hyphens: auto; } \n"
"</style> \n"
"</head> \n"
"<body>%@</body> \n"
"</html>", hyphenatedString];
@try {
SEL setContentToHTMLString = NSSelectorFromString([@[@"set", @"Content", @"To", @"HTML", @"String", @":"] componentsJoinedByString:@""]);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[textView performSelector:setContentToHTMLString withObject:htmlString];
#pragma clang diagnostic pop
}
@catch (NSException *exception)
{
textView.text = hyphenatedString;
}
© 2022 - 2024 — McMap. All rights reserved.