标签: drag-and-drop

如何判断Dock上的修改键是否关闭

我的Cocoa应用程序支持将文件拖放到Dock图标上,但我想要根据是否按下修改键(命令,选项等)来执行不同的行为.

我尝试检查modifierFlagsfor currentEvent,但无论是否按下修饰符,它们都是相同的(我正在使用Option键进行测试).

码:

// Code is inside my AppDelegate
- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)files {
    BOOL optDown = (([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask)
                    == NSAlternateKeyMask);
    NSLog(@"flags: %u, down? %@", [[NSApp currentEvent] modifierFlags],
          optDown ? @"YES" : @"NO");
}
Run Code Online (Sandbox Code Playgroud)

输出(使用Option键关闭文件,然后不丢弃):

flags: 1088, down? NO
flags: 1088, down? NO
Run Code Online (Sandbox Code Playgroud)

预期

flags: <not sure>, down? YES
flags: <different>, down? NO
Run Code Online (Sandbox Code Playgroud)

keyboard macos cocoa drag-and-drop dock

3
推荐指数
1
解决办法
2333
查看次数

如何构建像google +这样的拖放圈系统

我已经测试了G +一段时间了,我发现朋友拖放到圈子里的东西有很好的效果(你不觉得吗?)

我想知道如何在使用jQuery将用户拖放到圆圈时实现类似的效果.它可以给我一个起点,以实现树或方形的这一点.:)

谢谢

javascript jquery drag-and-drop jquery-effects google-plus

3
推荐指数
1
解决办法
6567
查看次数

jQuery UI Drag&Drop/Sortable Drop在空,在Chrome中

我正在使用jQuery UI Sortable功能.

使用Javascript

$('#sortablelist).sortable{
     update: function(ev, ui){...}, 
     placeholder: "ui-state-highlight",
     connectWith: ".ui-sortable" 
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,dropOnEmpty = true我没有设置它.

因为列表是空的,但是我想在空列表中给它一个"占位符"目标,我给了sortablelistdiv一个额外的帮助类来给空的#sortablelist一些"表面区域"可以这么说(所以在附加列表上拖动元素时获得占位符)

HTML

<div id="sortablelist" class="ui-sortable ui-sortable-helper"></div>
Run Code Online (Sandbox Code Playgroud)

CSS

.ui-sortable-helpclass {
    height: 100px;
    width: 100%;
}
Run Code Online (Sandbox Code Playgroud)

这适用于Firefox,IE,Safari,但占位符不会出现(因此无法在Google Chrome中使用

有什么想法吗?

drag-and-drop google-chrome jquery-ui jquery-ui-sortable

3
推荐指数
1
解决办法
2297
查看次数

从WPF listview拖动多个项目

我有一个列表视图,显示目录中的文件.
用户可以将列表视图中的每个项目拖动到文件夹/桌面,并在那里复制关联的文件.
这很好用.问题是 - 我想对多个项目这样做 - 因此用户可以选择多个listviewitems并将它们拖放并复制在一起.ListView设置为SelectedMode = Multiple-但它不会复制所有选定的项目.这是我的代码:

    private void FileView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        this.start = e.GetPosition(null);
    }

    private void FileView_MouseMove(object sender, MouseEventArgs e)
    {
        Point mpos = e.GetPosition(null);
        Vector diff = this.start - mpos;

        if (e.LeftButton == MouseButtonState.Pressed &&
            Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance &&
            Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
        {
            if (this.FileView.SelectedItems.Count == 0)
            {
                return;
            }

            // right about here you get the file urls of the selected items.  
            // should be quite easy, if not, ask.  
            string[] files …
Run Code Online (Sandbox Code Playgroud)

wpf binding drag-and-drop

3
推荐指数
2
解决办法
7927
查看次数

win7上的WMDropFiles问题

我已经实现了以下过程,当我在运行Windows Vista,计算机#1的计算机上编译它时,它可以正常工作.如果我将创建的.exe文件共享到另一台运行win7的计算机,计算机#2,它运行良好.问题是,当我让计算机#2编译它时,它不会简单地认识到应用程序上丢弃了任何东西.这段代码完全没有响应.它的构建和编译没有错误或警告.我一直在网上搜索一段时间没有找到任何解释为什么会发生这种情况或其他人有这个问题.

两台计算机都使用安装了相同组件的Delphi 2010.

  1. 这是允许用户将文件拖放到应用程序的方法吗?如果没有,今天应该怎么做?
  2. 任何想法为什么它在计算机#1而不是计算机#2上编译时有效?(在计算机#1上编译时,程序在两台计算机上都能正常工作)

任何帮助或评论都非常感谢.

procedure TfMainForm.WMDROPFILES(var msg: TWMDropFiles);
const
  MaxLength = 255;

var
  nFiles : integer;
  i : integer;
  fileName : array [0..MaxLength] of char;
  fileNames : TStringArray;

begin
  // Get number of files dropped
  nFiles := DragQueryFile(msg.Drop,  $FFFFFFFF, fileName, MaxLength);

  // Get filenames
  SetLength(fileNames, nFiles);
  for i := 0 to nFiles - 1 do begin
    DragQueryFile(msg.Drop, i, fileName, MaxLength);
    fileNames[i] := fileName;
  end;

    // Add files
  projectHandler.addFiles(fileNames);

  //release memory
  DragFinish(msg.Drop);
end;
Run Code Online (Sandbox Code Playgroud)

delphi drag-and-drop windows-vista windows-7 delphi-2010

3
推荐指数
1
解决办法
2489
查看次数

在contentEditable元素中拖放事件

当一个东西在contentEditable元素中丢弃时(拖动后)会触发什么事件?

我说的是普通的拖放,而不是HTML5拖放(任何元素都可以拖动); 用例很简单:

  • 页面上有一个contentEditable div,用作编辑器
  • 用户从当前页面或其他页面或其他浏览器的窗口拖放一些HTML(因此实际上没有任何"源"对象的概念:源可以来自浏览器外部)
  • 我需要通知内容已被删除到contentEditable div中,以便我可以对其进行操作(清理它)

我可以轮询div来看看那里有什么东西不干净,但是它很贵而且"丑陋"; 肯定有一个事件会在发生跌落时触发......?

javascript events drag-and-drop contenteditable

3
推荐指数
1
解决办法
3600
查看次数

如何水平拖动视图?

在ListView和Gallery等控件中,您可以在垂直或水平方向上拖动项目.

我有一个TextView,我成功地拖动它.但是我想把它向水平方向移动.我该如何实现它?

谢谢,

我的代码:

public class MyDragShadowBuilder extends View.DragShadowBuilder {
    private static View view;

    public MyDragShadowBuilder(View v) {
        super(v);
        view = v;
    }

    @Override
    public void onProvideShadowMetrics(Point size, Point touch) {
        width = getView().getWidth();
        height = getView().getHeight();
        size.set(width, height);
        touch.set(width / 2, height / 2);
    }

    private int width, height;

    @Override
    public void onDrawShadow(Canvas canvas) {
        view.draw(canvas);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的活动中:

tv.setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            ClipData data = ClipData.newPlainText("dot",
                    "Dot : " + v.toString());
            View.DragShadowBuilder myShadow …
Run Code Online (Sandbox Code Playgroud)

android drag-and-drop

3
推荐指数
1
解决办法
5537
查看次数

SVG小组翻译问题

我必须出于特定原因进行小组翻译(SVG).我不知道为什么我不能正确地做到这一点,因为在翻译完成后,在另一个单击组上它会重置开始位置的翻译并让我在SVG画布上乱跑.我在链接上写了准系统示例:http://www.atarado.com/en/stripboard-layout-software/group-translation-problem.svg,这里是代码:

<svg xmlns="http://www.w3.org/2000/svg"
 xmlns:xlink="http://www.w3.org/1999/xlink">
<script><![CDATA[
function startMove(evt){
 x1=evt.clientX;
 y1=evt.clientY;
 group=evt.target.parentNode;
 group.setAttribute("onmousemove","moveIt(evt)");
}
function moveIt(evt){
 dx=evt.clientX-x1;
 dy=evt.clientY-y1;
 group.setAttributeNS(null,"transform","translate("+ dx + ", " + dy +")");
}
function drop(){
 group.setAttributeNS(null, "onmousemove",null);
}
]]></script>
<rect x="0" y="0" width="100%" height="100%" fill="dodgerblue"/>

<g id="BC" transform="translate(0, 0)" onmousedown="startMove(evt)" onmouseup="drop()"><circle id="C" cx="60" cy="60" r="22" fill="lightgrey" stroke="black" stroke-width="8"/><circle id="B" cx="120" cy="60" r="22" fill="orange" stroke="black" stroke-width="8" /></g>
</svg>
Run Code Online (Sandbox Code Playgroud)

欢迎任何愿意提供帮助的人.

svg translation drag-and-drop coordinates coordinate-transformation

3
推荐指数
1
解决办法
2404
查看次数

项目拖放w/jQuery更新DOM

我有一个有两列的表.每列都有一个唯一的ID"pick"和"drop".此外,我在第一列中有许多项目.使用jQuery UI draggable/droppable我将项目从第一列(pick)拖到第二列(drop).

我需要在项目移动时更新DOM,从"选择"中删除项目并将其添加到"删除".我需要帮助把它全部放入一个函数中.该函数将包含在我可以检测到丢弃的代码的一部分中.

jquery drag-and-drop jquery-ui

3
推荐指数
1
解决办法
3005
查看次数

在dragenter事件期间获取文件名

我正在开发一个JavaScript和HTML的交互式文件上传器,我需要访问当前拖动的文件文件名(触发dragenter事件的文件名).

但是有一个问题,事件dataTransfer成员不包含任何文件,我真的需要在抛出drop事件之前知道文件名.可能吗?

提前致谢.

html javascript html5 drag-and-drop

3
推荐指数
1
解决办法
3610
查看次数