在Xamarin中,我需要检测文本字段的编程更改。 .valueChanged()
仅在最终用户更改值时有效。当我通过一个我无法访问的方法更改值时,我需要一种方法来调用方法。对于观察者来说,这似乎是可能的,但我无法找到有关如何为此实现它的任何信息。
答案 0 :(得分:2)
我幸运的是能够弄清楚如何做到这一点。我们假设你有一个UITextField "myTextField"
。
在ViewDidLoad()
方法中,人们会放
myTextField.AddObserver ("text", NSKeyValueObservingOptions.New, ObserveValue);
第一个参数是您要观察的值。可以找到UITextField
的属性列表here。最后一个参数是您在观察到更改时要调用的方法。
您调用的方法必须使用参数Foundation.NSObservedChange
,因此我的方法签名为public void ObserveValue(Foundation.NSObservedChange a)
希望这可以帮助其他人解决类似的问题。
答案 1 :(得分:1)
对我来说,没有什么是行动的,代表方法textField:shouldChangeCharactersInRange:replacementString:
:
[Export("textField:shouldChangeCharactersInRange:replacementString:")]
public bool ShouldChangeCharacters(UITextField textField, NSRange range, string replacementString)
{
return true;
}
查看此bugzilla report了解更多信息。