Може ли EntryElement да бъде многоредов на MonoTouch.Dialog?

Подкласирах EntryElement и зададох UILineBreakMode в метода GetCell като такъв:

public class EntryElementEnhanced : EntryElement, IElementSizing
{
    public EntryElementEnhanced(string caption, string placeholder, string value) : base (caption, placeholder, value) {}


    public float GetHeight(UITableView view, NSIndexPath indexPath)
    {
        return 100.0f; //arbitrary number just for testing
    }

    public override UITableViewCell GetCell (UITableView tv)
    {
        var cell = base.GetCell (tv);
        cell.TextLabel.LineBreakMode = UILineBreakMode.WordWrap;
        cell.TextLabel.Lines = 0;


        return cell;
    }
}

Това изглежда не прави текста, който се въвежда в клетката, обвит с думи. Трябва ли да настройвам това някъде другаде?

Ако някой знае по-добър подход, това, което се опитвам да постигна на по-високо ниво, е, че искам да създам еквивалента на UITextArea в MonoTouch.Dialog.


person valdetero    schedule 12.03.2012    source източник


Отговори (4)


EntryElement създава UITextField, което е един ред само контрол.

Ако имате нужда от няколко реда, предлагам ви да създадете свой собствен Element, напр. MultilineEntryElement и го накарайте да използва UITextView вътрешно.

Можете да направите това чрез копиране и поставяне на код от EntryElement или чрез наследяване от UIViewElement (или по малко от двете).

person poupou    schedule 12.03.2012
comment
Това изглежда работи за мен с копиране на код от входния елемент. Единственият проблем, който виждам сега, е, че в метода GetCell от EntryElement, entry.ShouldEndEditing += delegate се опитва да препрати root.Sections. Това е вътрешен списък, до който нямам достъп в моя подклас. Някакви идеи за заобиколно решение? - person valdetero; 14.03.2012

има част от кода на multilineEntryElement на https://gist.github.com/315408

в моето приложение изглежда малко фънки, но работи.

person Mr W    schedule 30.08.2012

Създадох MultilineEntryElement чрез подкласиране на UIViewElement на https://gist.github.com/4080025

Работи доста добре и се справя с контейнер. Ще трябва да го актуализирате за вашата специфична ширина.

person Dave Weaver    schedule 15.11.2012

Ще хвърля шапката си на ринга. Разгледах няколко същности на многоредовия елемент за въвеждане и всички те имаха проблеми с оформлението. Написах това https://gist.github.com/akcoder/5723722, за да адресирам оформлението проблеми и също така да обработва промените в ориентацията. Това трябва да работи на всички версии на iPhone и iPad.

person Dan Morphis    schedule 06.06.2013
comment
Ще трябва да приложите FindControlOfType‹T›, който не е включен в същината. Освен това не поддържа надписи или изглежда добре като елемент от страната на детайлите, разделен изглед (твърде широк). Освен това не изглежда добре да бъде поставен в групирана секция, тъй като изгледът на текста е закръглен (ясен фон = вярно) и фонът на етикета на контейнера не е ясен. Благодаря все пак за споделянето! - person therealjohn; 17.06.2013
comment
Извинете, че забравихте да включите елемента FindControlOfType‹T›. Когато тествах кода, той изглеждаше добре както в групиран, така и в обикновен изглед. Не съм сигурен какво се е случило. Напуснах предишната си позиция, така че вече нямам достъп до този код, така че няма да мога да актуализирам същността с кода FindControlOfType :( - person Dan Morphis; 19.06.2013