ios - UITextView 控制换行符

标签 ios objective-c uitextview

我有一个 UITextView ,其中的项目如下所示:

artist1 - song name1, artist2 - song name 2,
artist3 - song name3, etc.

我只想禁止换行符,除了艺术家之间(逗号之后,下一个艺术家之前),所以这将是无效的:
artist 1 - song name1, artist 2 - // <- invalid break
song name 2.

我已经尝试了两种方法来实现这一点:首先,我把东西放在一个 webview 中,这使得解决这个问题变得微不足道。不幸的是,由于其他几个原因,这是不可能的。

其次,我在有空格的地方添加了 _ 并将它们隐藏起来,如下所示:
artist_1_-_song_name1, artist_2_-_song_name_2, etc // <- setting colour of _ to invisible.

这几乎奏效了,但现在它在连字符处中断,如下所示:
artist_1_-
song_name1

我首先在寻找解决这个问题的好方法。如果这不起作用,我会选择一个看起来像破折号但不会中断的 Unicode Char(U+2015 水平条太长)

编辑:刚刚发现了有关 Unicode 字符“非中断连字符”(U+2011)的信息,所以虽然问题在技术上已得到解决,但我仍在寻找一种不那么骇人听闻的方法来做到这一点。

最佳答案

你想要的是一个不间断的空格,或者 Unicode 字符 u+00a0。

NSString *nonbreakingspace = @"\u00A0";
NSString *nonbreakinghyphen = @"\u2011";

用不间断空格字符串替换艺术家 1 - 歌曲名称 1 中的空格,用不间断连字符不间断连字符字符串替换连字符。
NSString *text = ...;
text = [text stringByReplacingOccurrencesOfString:@" " withString:nonbreakingspace];
text = [text stringByReplacingOccurrencesOfString:@"-" withString:nonbreakinghyphen];
myTextView.text = text;

关于ios - UITextView 控制换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663336/

相关文章:

objective-c - 具有自动布局约束的 NSButton 文本插入

ios - 在 Swift 中获取和设置 UITextField 和 UITextView 的光标位置

ios - 将类别添加到 UITextView 并在 UITextView 在 xib 时覆盖它的 init 函数

ios - 辅助功能辅助功能递减()没有被调用

ios - 未下载 WebDriverAgent 项目的依赖项

ios - kRNCryptorAES256Settings 引用错误

ios - UIKeyboardTaskQueue 线程问题

ios - 如何在 iOS 7 中更改 UITabBar 外观

objective-c - 什么是正确的应用内购买产品类型?

objective-c - 如何使用 route-me 创建透明层