代码之家  ›  专栏  ›  技术社区  ›  wraith

无法将光标移动到Titanium.UI.TextArea中的位置0

  •  0
  • wraith  · 技术社区  · 12 年前
    • 我在模态窗口中有一个TextArea。当模式窗口显示时,我希望焦点设置为该TextArea。我还希望TextArea在显示时具有默认文本&光标位于该文本的开头。
    • 当模式窗口显示时,我在TextArea上调用focus()&在focus()处理程序中,我设置了我想要的文本&调用setSelection(0,0)将光标移动到位置0。
    • 这似乎不起作用,因为光标仍在设置文本的末尾。
    • 我正在使用最新版本的SDK。
    • 如果有人能帮我解决这个问题就太好了。谢谢

    Titanium SDK:3.0.2目标平台:仅限IOS

    这是代码:

    // 'statusUpdateArea' is my TextArea
    
    $.tabbedBarNav.addEventListener('click',function(e) 
    {
       statusUpdateArea.focus();
    }
    
    statusUpdateArea.addEventListener('focus',function() 
    {
       statusUpdateArea.setValue(" -  I am here'");
    
       //API to set cursor at beginning doesn't work!!!!!! [or I don'tknow how to use it :(   ]
       statusUpdateArea.setSelection(0, 0);
    
    });
    
    3 回复  |  直到 12 年前
        1
  •  2
  •   Dawson Toth    12 年前

    不要集中注意力。setSelection将为您聚焦文本区域。聚焦会使选择无法正确设置。取消对.focus调用的注释以查看它是否不起作用。

    请尝试以下操作。它适用于我使用Titanium SDK 3.x的iOS。

    var win = Ti.UI.createWindow({
        backgroundColor: '#fff'
    });
    var textArea = Ti.UI.createTextArea({
        value: 'Some text.'
    });
    win.add(textArea);
    win.addEventListener('open', function(evt) {
        // textArea.focus();
        textArea.setSelection(0, 0);
    });
    win.open();
    
        2
  •  0
  •   sundar nataraj    12 年前

    使用hintText作为默认值。。你不能那样设置文本。。实际的setSelection不用于cusor移动。它用于在文本字段中选择值的一部分。。。所以你不能用那种方法。。。使用提示文本并让用户键入。。稍后,你可以将默认文本添加到文本的值中,这可能会很有用。。

        3
  •  0
  •   wraith    12 年前

    我在Appcelerator开发论坛上得到了这个问题的答案。IOS上的实现似乎有一个错误:

    Appcelerator Dev forum