【问题标题】:Can EntryElement be multiline on MonoTouch.Dialog?MonoTouch.Dialog 上的 EntryElement 可以是多行的吗?
【发布时间】:2012-03-29 06:25:59
【问题描述】:

我继承了 EntryElement 并在 GetCell 方法中设置了UILineBreakMode

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;
    }
}

这似乎不会使输入到单元格中的文本自动换行。我应该将其设置在其他地方吗?

如果有人知道更好的方法,我想在更高级别上完成的是我想在 MonoTouch.Dialog 中创建 UITextArea 的等价物。

【问题讨论】:

    标签: c# ios xamarin.ios monotouch.dialog


    【解决方案1】:

    EntryElement 创建一个UITextField,这是一个only 控件。

    如果您需要多行,那么我建议您创建自己的Element,例如MultilineEntryElement,并让它在内部使用 UITextView

    您可以通过从EntryElement 复制粘贴代码或从UIViewElement 继承代码(或两者兼而有之)来做到这一点。

    【讨论】:

    • 这似乎对我有用,可以从 entry 元素复制代码。我现在看到的唯一问题是,在来自EntryElementGetCell 方法中,entry.ShouldEndEditing += delegate 试图引用root.Sections。这是我无法在我的子类中访问的内部列表。任何解决方法的想法?
    【解决方案2】:

    https://gist.github.com/315408 有一个 multilineEntryElement 代码段

    在我的应用中,它看起来有点时髦,但确实有效。

    【讨论】:

      【解决方案3】:

      我通过在https://gist.github.com/4080025 子类化 UIViewElement 创建了一个 MultilineEntryElement

      效果很好,可以处理占位符。您需要根据您的特定宽度对其进行更新。

      【讨论】:

      • float containerWidth = UIScreen.MainScreen.Bounds.Width;
      【解决方案4】:

      我会把我的帽子扔进擂台。我查看了几个多行条目元素的要点,它们都有布局问题。我写了这个https://gist.github.com/akcoder/5723722 来解决布局问题并处理方向变化。这应该适用于所有版本的 iPhone 和 iPad。

      【讨论】:

      • 你必须实现 FindControlOfType ,它没有包含在要点中。此外,它不支持标题,或者作为拆分视图(太宽)的细节侧的元素看起来不错。放在分组部分也不好看,因为文本视图是圆形的(背景清晰 = true)并且占位符标签背景不清晰。不过感谢分享!
      • 很抱歉忘记包含 FindControlOfType 部分。当我测试代码时,它在分组视图和普通视图中看起来都很好。我不确定发生了什么。我离开了以前的职位,因此我无法再访问该代码,因此我将无法使用 FindControlOfType 代码更新要点:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多