【问题标题】:Paste into text field TideSDK粘贴到文本字段 TideSDK
【发布时间】:2013-02-10 14:18:07
【问题描述】:

我有以下代码,我希望用户能够复制或粘贴到文本字段中, 基本上模仿 ctrl+cctrl+v

我的问题是:

  1. 如何确保上下文菜单仅出现在文本字段中
  2. 如何将文本粘贴到区域中。

我已经阅读了文档,但到目前为止我还没有工作:

 var menu = Ti.UI.createMenu();


    menu.addItem('Copy', function() {
        var data =$.("#this").val()

       Ti.UI.Clipboard.getData('text/plain',data);

    });
    menu.addItem('Paste', function() {

       var data =Ti.UI.Clipboard.getData('text/plain');
       $.("#this").val(data)
    });

function showrightmenu(){  Ti.UI.getCurrentWindow().setContextMenu(menu);}

我可以使用oncontextmenu= "showrightmenu()" 调用它,但现在,如何在这一行粘贴一些内容:

    $.(#this).val(Ti.UI.Clipboard.setData('text/plain'))

我在黑暗中摸索。我是 TideSDK 的新手,这是我的第一个项目。

【问题讨论】:

    标签: javascript clipboard tidesdk


    【解决方案1】:

    问题 1

    我也是 TideSDK 的新手,可能是错误的,但据我从 API 文档中可以看出,上下文菜单绑定到一个窗口,并且在右键单击窗口的不同部分时显示不同的上下文菜单会要求您每次更改窗口的上下文菜单...

    例子:

    //Create different menus
    var context_menu = Ti.UI.createMenu();
    var copy_menu    = Ti.UI.createMenu();
    //Add menu items etc.
    ...
    
    //Change context menus on click events depending on clicked element
    $('#some-element').mousedown(function(event){
        if(event.which==3){//detect right click
            editor_window.setContextMenu(context_menu);
        }
    });
    $('#text-field').mousedown(function(event){
        if(event.which==3){//detext right click
            editor_window.setContextMenu(copy_menu);
        }
    });
    

    这样,当您单击 id 为 some-element 的元素时,将显示第一个上下文菜单,当您单击 #text-field 元素时,将显示第二个上下文菜单。

    请注意,如果一个元素在另一个元素中,这将不起作用,因为这两个事件都会被触发。

    问题 2

    在您提供的这段代码中:

    $.(#this).val(Ti.UI.Clipboard.setData('text/plain'))
    

    您想使用Ti.UI.Clipboard.getData 而不是Ti.UI.Clipboard.setData,因为您想获取存储在剪贴板中的文本,然后将其放入文本字​​段。此外,您可能希望将$.(#this) 更改为$("#this")$(this)

    这应该有效:

    $("#some-element").val(Ti.UI.Clipboard.getData('text/plain'))
    

    备注

    您似乎对如何使用 jQuery 感到困惑。要选择一个元素,请使用$() 而不是$.()。此外,使用$("#example"),您可以选择id 为example 的DOM 元素。 $(this) 用于在触发事件时调用的函数内,并引用触发事件的元素。 $("#this")$(this) 不同。希望对您有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      相关资源
      最近更新 更多