0

私は次のコードを持っています。基本的にctrl+cまたはctrl+を模倣して、ユーザーがテキストフィールドにコピーまたは貼り付けできるようにしたいです。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の初心者です、これは私の最初のプロジェクトです。

4

1 に答える 1

0

質問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 番目のコンテキスト メニューが表示されます。

一方の要素が他方の要素内にある場合、両方のイベントが発生するため、これは機能しないことに注意してください。

質問2

あなたが提供したこのコードでは:

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

クリップボードに保存されたテキストを取得してからテキスト フィールドに入れたいので、Ti.UI.Clipboard.getDataand ではなくを使用します。また、またはTi.UI.Clipboard.setDataに変更$.(#this)することもできます。$("#this")$(this)

これはうまくいくはずです:

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

述べる

jQueryの使い方に戸惑っているようです。要素を選択するには、 では$()なく and を使用します$.()。また、$("#example")id を持つ DOM 要素を選択しますexample$(this)イベントが発生したときに呼び出される関数内で使用され、イベントが発生した要素を参照します。$("#this")と同じではありません$(this)。それが少し役立つことを願っています...

于 2013-02-10T15:18:47.507 に答える