Xamarin检测文本字段的程序变化

时间:2015-05-17 02:08:03

标签: ios iphone xamarin xamarin.ios xamarin-studio

在Xamarin中,我需要检测文本字段的编程更改。 .valueChanged()仅在最终用户更改值时有效。当我通过一个我无法访问的方法更改值时,我需要一种方法来调用方法。对于观察者来说,这似乎是可能的,但我无法找到有关如何为此实现它的任何信息。

2 个答案:

答案 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了解更多信息。