1

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

4

2 回答 2

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;
    }
}
于 2012-11-15T09:44:12.090 回答
0

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

正在考虑如果您以前使用过 MultilineEntryElement,它可能会在 GetCell 中出列。

var cell = tv.DequeueReusableCell (CellKey);

也许...

于 2012-11-15T05:49:26.647 回答