SimpleMultilineEntryElement插入点失败

时间:2012-11-12 00:06:54

标签: xamarin.ios monotouch.dialog

我正在使用monotouch-element-pack中的MonoTouch SimpleMultilineEntryElement(最初只是MultilineEntryElement),当我点击在现有文本中的某处插入时,我可以插入一个字符,然后插入点跳转到串。我检查了示例应用程序,行为是一样的,所以它似乎是库中的东西,而不是我做错了什么。有其他人有这个问题并解决了吗?

2 个答案:

答案 0 :(得分:2)

在SimpleMultilineEntryElement中,将FetchValue更改为以下内容,基本上发生的是文本中的当前位置随着文本的每次修改而丢失,每次都会将文本结束。

使用以下代码,您将在开始时保存文本中的当前位置,并在末尾重新定位光标。

public void FetchValue() {
    if (entry == null) {
        return;
    }

    int currentPos = entry.SelectedRange.Location;
    var newValue = entry.Text;
    if (newValue == Value) {
        return;
    }

    Value = newValue;

    if (Changed != null) {
        Changed(this, EventArgs.Empty);
    }

    if (currentPos > 0) {
        NSRange newPos = new NSRange(currentPos, 0);
        entry.SelectedRange = newPos;
    }
}

答案 1 :(得分:0)

不是100%确定这是否是问题,或者是否可能是一个问题。但我认为entryKey和cellkey必须是特定元素的唯一。两者都设置为MultilineEntryElement而不是SimpleMultilineEntryElement。

在考虑您以前是否使用过MultilineEntryElement时,它可能会在GetCell中出列。

var cell = tv.DequeueReusableCell (CellKey);

也许......