2011-11-02 29 views
7

NSString的Apple文檔中,有一個stringByReplacingCharactersInRange方法,但我在Monotouch中找不到此方法。在Monotouch中是否存在NSString的「stringByReplacingCharactersInRange」方法?

該方法實現從Monotouch - 本機API綁定中缺少嗎?

我需要這個方法來實現內部shouldChangeCharactersInRange

+0

您正在使用一個NSString或MonoTouch的字符串? –

+0

我試過了,都沒有這樣的方法。 –

+0

不確定'shouldChangeCharactersInRange'是什麼?錯字? – poupou

回答

8

下面是一些代碼,做你需要的東西:

string text = field.Text; 
string result; 

result = text.Substring (0, range.Location) + replacement + text.Substring (range.Location + range.Length); 
+0

爲什麼downvote? :-( – jstedfast

+0

感謝jstedfast,你的代碼做我正在尋找的東西 –

4

並非一切都被綁定爲NSString一些自定義字符串處理邏輯,因爲這主要是複製在System.String提供的.NET方法。

最簡單的方法是使用.NET(本地)字符串,並在需要與需要它的API進行互操作時創建NSString。這具有最小化託管/非託管過渡的數量的優點(這是一個小的成本)。

string s = "..."; 
var ns = new NSString (s); 

也是一樣,如果你從API收到NSString,將其轉換成字符串,然後對其進行操作。

NSString ns = NSSomething.GetIt(); 
string s = ns.ToString(); 

如果您發現有沒有類似.NET方法,那麼請填寫上http://bugzilla.xamarin.com bug報告,我們將確保它包括在MonoTouch的未​​來版本的一個特異性結合。通常可以立即解決您的問題。

+2

感謝poupou。我無法找到與stringByReplacingCharactersInRange平等的.NET Framework方法。我將填寫一份錯誤報告 –

相關問題