2011-11-02 10 views
7

NSStringのAppleドキュメントにはstringByReplacingCharactersInRangeメソッドがありますが、このメソッドはMonotouchで見つけることができません。NSStringの "stringByReplacingCharactersInRange"メソッドはMonotouchにありますか?

Monotouch - ネイティブAPIバインディングからこのメソッドの実装が欠けていますか?

私はそれがほとんどSystem.Stringで利用可能な.NETメソッドを複製してしまうため、すべてがNSStringのためにバインドされていない

+0

あなたがNSStringのか、MonoTouchでのStringを使用していますか? –

+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

shouldChangeCharactersInRange内部のロジックを扱ういくつかのカスタム文字列を実装するために、この方法が必要になります。

最も簡単な方法は、.NET(ネイティブ)文字列を処理し、それが必要なAPIと相互運用する必要がある場合には、NSStringを作成することです。これには、管理された/管理されていない遷移の数を最小限に抑えるというメリットがあります(それにはコストがかかります)。あなたはそれを操作する、APIからNSStringを受け取る文字列に変換する場合は、同じ

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

は行きます。

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

あなたはそれが全く同様の.NETメソッドを持っていない特異的結合を見つけた場合、その後http://bugzilla.xamarin.com上のバグレポートを記入し、我々はMonoTouchでの将来のリリースに含めるようにしてくださいますしてください。多くの場合、即座に回避策を講じてブロックを解除することができます。

+2

ありがとうございます。私はstringByReplacingCharactersInRangeに匹敵する.NET Frameworkメソッドを見つけることができません。私はバグ報告を記入します –

関連する問題