2014-02-09 97 views
0

我有一個看起來像這樣的項目一個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字符,看起來像一個破折號但不會中斷(U + 2015橫條太長)

編輯:剛剛發現了關於Unicode字符'NON (U + 2011),所以雖然技術上解決了這個問題,但我仍然在尋找一種不太危險的方法來做到這一點。

回答

3

你想要的是一個非破壞性的空間,或者Unicode字符u + 00a0。

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

的更換你的空間在artist1 - 與不換行空格的字符串,並與非斷連字符nonbreakinghyphen字符串連字符歌曲名1。

NSString *text = ...; 
text = [text stringByReplacingOccurrencesOfString:@" " withString:nonbreakingspace]; 
text = [text stringByReplacingOccurrencesOfString:@"-" withString:nonbreakinghyphen]; 
myTextView.text = text; 
+0

謝謝。事實上,我發現自己不斷破折號後不久就想出了自己:)。 – Reason