0

我正在尝试使用 MonoTouch 和 DialogViewController 为 iOS 实现一个设置对话框。

下面的类包含一些公共属性,以及为其获取 DialogViewController 的方法。

问题是当视图消失时,其中的字符串值为thisName.Value空(我当然在文本字段中填写了一些内容)。

为什么?

    public class Settings
    {
        public string Name { get; set; }

        public  int MagicNumber { get; set; }

        public bool ThisIsEnabled{ get; set; }

        public Settings ()
        {
            var defaults = NSUserDefaults.StandardUserDefaults;
            Name = defaults.StringForKey ("name");
            ThisIsEnabled = defaults.BoolForKey("thisisenabled");
            MagicNumber = defaults.IntForKey ("123");
        }

        public UIViewController GetViewController ()
        {
            var thisBoolean = new BooleanElement ("This boolean", ThisIsEnabled);
            var thisName = new EntryElement ("Name", "name", Name);
            thisName.KeyboardType = UIKeyboardType.ASCIICapable;

            var root = new RootElement ("Options"){
                new Section (){thisBoolean,thisName}
            };

            var dv = new DialogViewController (root, true){Autorotate= true};
            dv.ViewDissapearing += delegate {
                ThisIsEnabled = thisBoolean.Value; // <== This works
                Name = thisName.Value; // <== This is NULL

                var defaults = NSUserDefaults.StandardUserDefaults;
                defaults.SetBool (ThisIsEnabled, "thisisenabled");
                defaults.SetString (Name, "name");
            };
            return dv;
        }
    }
}
4

1 回答 1

0

当前版本的 MT.D 不会“保存”字段的值,直到用户离开它。这可能就是您所看到的。

此行为已修复,但尚未发布。

于 2012-04-06T16:22:50.577 回答