Monotouch中是否存在NSString的“stringByReplacingCharactersInRange”方法?

时间:2011-11-02 11:28:50

标签: ios ios4 nsstring xamarin.ios monodevelop

NSString的Apple文档中,有一个 stringByReplacingCharactersInRange 方法,但我在Monotouch中找不到此方法。

Monotouch是否缺少此方法实现 - 本机API绑定?

我需要这个方法在 shouldChangeCharactersInRange

中实现一些自定义字符串处理逻辑

2 个答案:

答案 0 :(得分:8)

这里有一些代码可以满足您的需求:

string text = field.Text;
string result;

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

答案 1 :(得分: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的错误报告,我们将确保将其包含在MonoTouch的未​​来版本中。通常可以立即采取解决方法来阻止您。