2

単純なEntryElement「eNote」を作成して、に追加しSectionます。超シンプル。

        Section secNote = new Section ("Notes");
        eNote.AutocapitalizationType = UITextAutocapitalizationType.None;
        eNote.AutocorrectionType = UITextAutocorrectionType.No;
        eNote.KeyboardType = UIKeyboardType.ASCIICapable;
        secNote.Add (eNote);

次のような文を入力します。

ここに画像の説明を入力してください

次に、「U」の前をタップして「Unity」の前に「I Like」というテキストを追加しようとすると、最初の文字が入力されますが、残りはテキストの最後に配置されます。その結果、テキストを編集できなくなります。

ここに画像の説明を入力してください

4

2 に答える 2

2

簡単に言うと、これはバグであり、Xamarinに提出する必要があります

ただし、回避策を見つけました。アセンブリブラウザを使用すると、EntryElementの既存の実装を「借用」して、Valueプロパティを次のように変更できます。

public string Value
{
    get
    {
        return this.val;
    }
    set
    {
        this.val = value;
        if (this.entry != null && value != null && !value.Equals (this.entry.Text))
        {
            this.entry.Text = value;
        }
    }
}

ハッピーハッキング!

于 2012-05-10T03:56:16.837 に答える
1

これは、この変更によって引き起こされたリグレッションです。ソース(github)からMonoTouch.Dialogをビルドする場合は、4cffe144f89fc9fbfe032d56e67a8583c2d641bfコミットを元に戻すことができます。

同じ変更により、入力したバグレポートのほかに、他の副作用(#4736など)も発生しました。これがアプリケーションに影響するかどうかを確認して、回避策が元に戻すよりも優れているかどうかを確認する必要があります。

于 2012-05-10T21:04:44.477 に答える