如何使用LiveCode字段计算selectedText的位置?

时间:2013-03-08 05:52:05

标签: ios user-experience livecode

我想滚动字段,以便在调整大小后可以看到选择。要做到这一点,我需要从选择所在的字段顶部计算高度,然后偏移当前滚动以计算新的滚动。我不能假设一个fixedLineHeight。有人有任何线索吗?

2 个答案:

答案 0 :(得分:3)

在字典中搜索后,我找到了selectedLoc函数。我最终在每次调整字段大小后执行以下代码,这给出了我想要的行为。

   put item 2 of the selectedLoc-the scroll of pField into tSelectionHeight
   if tSelectionHeight > the scroll of pField+the height of pField then
      set the scroll of pField to tSelectionHeight-the height of pField
   end if

答案 1 :(得分:1)

如果没有选定的位置,以下内容也有效。我在PowerDebug中使用它来将调试窗口中的断点或当前代码行居中。 (是的,我知道我假设线路高度在场上是一致的。)

command CenterDebugText pLinesToHilite
  local tLineHeight, tFieldHeight
  local tScroll

  lock screen
  set the hilitedlines of field kDebugFieldName of me to pLinesToHilite
  -- center the breakpoint line in the display

  -- calculate the number of visible script lines
  put the effective textheight of field kDebugFieldName into tLineHeight
  put the height of field kDebugFieldName into tFieldHeight

  put tLineHeight * (item 1 of pLinesToHilite) into tScroll
  subtract tFieldHeight / 2 from tScroll
  set the vscroll of field kDebugFieldName to trunc(tScroll)
  unlock screen
end CenterDebugText