我有一个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字符(U + 2015横条太长)
编辑:刚刚发现了关于Unicode字符“非爆炸性”的问题(U + 2011),所以虽然问题在技术上已经解决了,但我仍然在寻找一种不那么强硬的方法来做到这一点。
答案 0 :(得分:3)
你想要的是一个非中断空格,或Unicode字符u + 00a0。
NSString *nonbreakingspace = @"\u00A0";
NSString *nonbreakinghyphen = @"\u2011";
将artist1 - song name1中的空格替换为nonbreakingspace字符串,将连字符替换为非断开连字符nonbreakinghyphen字符串。
NSString *text = ...;
text = [text stringByReplacingOccurrencesOfString:@" " withString:nonbreakingspace];
text = [text stringByReplacingOccurrencesOfString:@"-" withString:nonbreakinghyphen];
myTextView.text = text;
答案 1 :(得分:0)
swift 4版本!
var nonbreakinghyphen = "\u{2011}"
var text = "i-21"
myTextView.text = text.replacingOccurrences(of: "-", with: nonbreakinghyphen)}