在NSString的Apple文档中,有一个 stringByReplacingCharactersInRange 方法,但我在Monotouch中找不到此方法。
Monotouch是否缺少此方法实现 - 本机API绑定?
我需要这个方法在 shouldChangeCharactersInRange
中实现一些自定义字符串处理逻辑答案 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的未来版本中。通常可以立即采取解决方法来阻止您。