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