如何从输入字段中获取字符串值?

时间:2012-04-06 15:04:37

标签: xamarin.ios monotouch.dialog

我正在尝试使用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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

此行为已fixed,但尚未发布。