首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从NSTableView拖放时获取目标路径

NSTableView是苹果公司的Cocoa框架中的一个类,用于在Mac OS X应用程序中显示和管理表格数据。它是一种用户界面控件,可以以表格的形式展示数据,并支持用户与表格进行交互操作。

在进行NSTableView的拖放操作时,可以通过以下步骤获取目标路径:

  1. 实现NSTableView的拖放代理方法:
    • 首先,需要设置NSTableView的拖放代理对象,一般是当前视图控制器或窗口控制器。
    • 实现代理方法tableView:validateDrop:proposedRow:proposedDropOperation:,用于验证拖放操作是否可以进行。
    • 实现代理方法tableView:acceptDrop:row:dropOperation:,用于接受拖放操作并处理数据。
  2. tableView:acceptDrop:row:dropOperation:方法中获取目标路径:
    • 通过[tableView rowAtPoint:[tableView convertPoint:[sender draggingLocation] fromView:nil]]获取目标行号。
    • 通过目标行号获取对应的数据对象。
    • 从数据对象中获取目标路径。

下面是一个示例代码片段,演示了如何从NSTableView拖放时获取目标路径:

代码语言:objective-c
复制
// 设置拖放代理
tableView.delegate = self;
tableView.dataSource = self;
tableView.registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];

// 实现拖放代理方法
- (NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id<NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)operation {
    // 验证拖放操作,返回NSDragOperationCopy表示可以进行拖放
    return NSDragOperationCopy;
}

- (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id<NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation {
    NSPasteboard *pasteboard = [info draggingPasteboard];
    NSArray *fileURLs = [pasteboard propertyListForType:NSFilenamesPboardType];
    
    // 获取目标路径
    NSString *targetPath = [fileURLs firstObject];
    
    // 处理目标路径
    // ...
    
    return YES;
}

在上述示例代码中,拖放操作涉及到文件路径,可以通过NSFilenamesPboardType类型获取拖放的文件路径数组。示例中只获取了第一个文件的路径作为目标路径,你可以根据实际需求进行处理。

此外,腾讯云提供了丰富的云计算产品和服务,可以根据具体需求选择适合的产品。例如,如果需要在云上搭建应用程序,可以使用腾讯云的云服务器CVM、云数据库MySQL、对象存储COS等产品。具体产品介绍和文档可以在腾讯云官网上找到。

注意:本回答中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,仅提供了关于NSTableView拖放获取目标路径的解答。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过无法检测到的网络(Covert Channel)目标主机获取数据

在本文中,你将学习如何通过不可检测的网络目标主机窃取数据。这种类型的网络被称为隐蔽信道,而这些流量在网络监控设备/应用和网络管理员看来像是一般的正常流量。...covert channel 的类型 网络隐蔽存储信道:发送者直接或间接些目标值,接收者直接或间接接读目标值。.../tunneld 默认情况下,它会发送分段数据包,该数据包会在目标端点重组以躲避防火墙和IDS。 ?...当某些路由器和防火墙(如Cisco路由器和默认Linux安装)收到第四层没有标头的分段数据包,即使它们有拒绝它的规则,也会允许它们通过。...总结 隐蔽信道在数据泄露不会发送加密的数据包,因此它很容易被嗅探到,网络管理员可以轻松的进行数据丢失防护和风险管理。

2.7K40

【python小脚本】数据库获取文件路径通过scp下载本地

写在前面 ---- 我的需求 需要在mysql数据库中查到相关文件的在服务器的路径,然后通过scp来下载相关文件,之前是手动操作,我现在要写成一个脚本 我需要解决的问题 如何使用python连接mysql...我是怎么做的 使用 pymysql模块连接mysql获取路径 使用 paramiko模块执行scp命令 通过使用PyInstaller打包为一个exe,可以直接给运维人员使用 何谓喜欢一个人,遇上她之前不知情为何物...14 16:34:56 @Author : Li Ruilong @Version : 1.0 @Contact : 1224965096@qq.com @Desc : 一个mysql...数据库获取文件路径,通过scp远程下载文件到本地的脚本 pip install pymysql pip install paramiko ''' # here put the...%m-%d %H:%M:%S", time.localtime()), "=========================", '\n') print("下载后的文件路径

2.2K30

Mac OSX 开发基础控件学习之 NSOutlineView

NSOutlineView-feature.png 在开发基于osx的Application的过程中,当我们需要显示一组列表结构的数据,比较容易想到的控件是NSTableView;但如果你显示的数据有层级结构...,NSTableView就会面临一个问题:因为在osx中,NSTableView没有分组功能( sections) 因为在cocoa 中提供了另一个控件供满足我们的需求NSOutlineView它是继承自...NSTableView的子类,是Mac OSX Application常用的控件之一,与NSTableView相似,NSOutlineView也使用行和列来显示内容,但所不同的是NSOutlineView...你也可以从这里Demo下载工程,但更推荐自己一步一步创建工程并实现功能)来简单学习一下怎样使用NSOutlineView显示带有层级结构的数据内容 创建osx项目工程,并搭建UI界面,大致效果如下图: UI界面 控件库中...NSTableCellView 设置子节点cell重用标识 最终运行效果 运行效果 One more thing 设置展开所有节点或者某一节点 设置展开指定节点 storyboard

1.5K20

腾讯俞栋:定义下一代智能人机交互,目标、挑战到实现路径

人机交互的历史和目标 在计算机的发展历史上,随着技术的进步,发生过几次大的交互模式的演进。最近的两次大家比较熟悉的转变是以鼠标/键盘为主的交互模式转换为以触摸和语音为主的交互模式。...智能人机交互系统的终极目标 智能人机交互系统的终极目标是使人与机器交互和人与人交互一样轻松自然。我们认为以人为本的角度来看,理想的系统应该具有几个重要的指标。 ?...目标5:个性化交互 最后一个指标是个性化交互,这也是为了使交互更自然。比如当与小孩交互我们会希望机器的回答匹配孩子的认知水平、智能设备的语调和口吻适合孩子。...又比如当与不同人交互我们会希望智能设备的交互方式和内容是用户所感兴趣的。...多模态智能交互系统的挑战与实现路径 我们可以看到,人机是一个高度协同的系统,为了降低对人的要求和限制,我们必须通过技术手段提升机器的能力。

1.5K31

【HTML5】逐步分析如何实现拖放功能

(2)目标元素的事件 在实现拖放功能的过程中,目标元素上的事件有如下三个 事件 含义 dragenter 被拖放元素进入目标元素触发 dragover 被拖放元素在目标元素内触发(频繁触发) dragleave...,除非拖放事件结束或者被拖放元素离开目标元素 dragleave事件 的其触发条件正好与 dragenter 事件相反,它是当被拖放元素离开目标元素触发,经过测试,离开目标元素的条件是:被拖放元素一半以上的面积离开目标元素...drop事件 可以叫做放置目标事件,它是当被拖放元素放置到了目标元素中触发。...event.dataTransfer 来获取该对象,其主要的作用就是拖放元素向目标元素传递一个字符串数据 (1)方法 dataTransfer上有两个方法,如下表所示 方法 含义 setData...e.preventDefault() }) located.addEventListener('drop', function(e) { // 将被拖放元素放置到目标元素获取字符串

1.4K10

drag事件详解:html5鼠标拖动排序及resize实现方案分析及实践

源对象事件: dragstart:源对象开始拖放,开始移动时事件触发 drag:源对象拖放过程中,移动被拖拽对象触发 dragend:源对象拖放结束,整个拖放操作结束触发。...dragover -> dragleave -> drop ->dragend目标对象事件:drop:源对象拖放目标对象中,目标对象完全接受被拖拽对象触发,可理解为在目标对象内松手触发。...dropEffect获取当前选定的拖放操作的类型或将操作设置为新类型。它应该始终设置成effectAllowed的可能值之一【none、move、copy、link】。...拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针。这个图片是自动创建的,你不需要自己去创建它。...如果effectAllowed属性是定为none,则不允许拖放元素dropEffect   表示拖放操作的视觉效果(作用于目标元素),如果dropEffect 属性设定为none,则不允许被拖放目标元素中

6.1K21

界面劫持之拖放劫持

由于用户需要用鼠标拖放完成的操作越来越多(如复制粘贴、小游戏等等),拖放劫持大大提高了点击劫持的攻击范围,将劫持模式单纯的鼠标点击拓展到了鼠标拖放行为。...02拖放劫持核心思路"拖放劫持"的思路是诱使用户隐藏的不可见iframe中"拖拽"出攻击者希望得到的数据,然后放到攻击者能控制的另外一个页面中,从而窃取数据。...2、dataTransfer对象为了能够协助通过拖放操作传递数据,在IE5.0以后引入了dataTransfer对象,他作为event对象的一个属性出现,用于被拖动的对象传递字符串到放置对象。...因此成功实施 CSRF 攻击的关键因素是正确获取 token 值,攻击者需要将载入目标网页 iframe 中 token 自动添加攻击者可控组件后面。...2、注意观察拖放内容在支持拖放功能的火狐和IE浏览器中,在拖动的过程中能清楚的看到鼠标移动拖放的内容,对于拖放劫持而言图片的“移动”并不是拖动的结果,而是两个位置、两张图片,透明度交替变换的作用,真正移动的是图片上方的

20420

界面劫持之拖放劫持分析

由于用户需要用鼠标拖放完成的操作越来越多(如复制粘贴、小游戏等等),拖放劫持大大提高了点击劫持的攻击范围,将劫持模式单纯的鼠标点击拓展到了鼠标拖放行为。...02 拖放劫持核心思路 "拖放劫持"的思路是诱使用户隐藏的不可见iframe中"拖拽"出攻击者希望得到的数据,然后放到攻击者能控制的另外一个页面中,从而窃取数据。...2、dataTransfer对象 为了能够协助通过拖放操作传递数据,在IE5.0以后引入了dataTransfer对象,他作为event对象的一个属性出现,用于被拖动的对象传递字符串到放置对象。...因此成功实施 CSRF 攻击的关键因素是正确获取 token 值,攻击者需要将载入目标网页 iframe 中 token 自动添加攻击者可控组件后面。...2、注意观察拖放内容 在支持拖放功能的火狐和IE浏览器中,在拖动的过程中能清楚的看到鼠标移动拖放的内容,对于拖放劫持而言图片的“移动”并不是拖动的结果,而是两个位置、两张图片,透明度交替变换的作用,真正移动的是图片上方的

23030

H5新增的特性及语义化标签

意思是:在画布上绘制 150×75 的矩形,左上角开始 (0,0)。...Canvas – 路径 在Canvas上画线,我们将使用以下两种方法: moveTo(x,y) 定义线条开始坐标 lineTo(x,y) 定义线条结束坐标 绘制线条我们必须使用到 “ink” 的方法...’) //console.log(arguments); } //定位失败的回调 ) (7)拖放API   拖放是一种常见的特性,即抓取对象以后拖到另一个位置。...在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。   拖放的过程分为源对象和目标对象。源对象是指你即将拖动元素,而目标对象则是指拖动之后要放置的目标位置。...*1 拖放目标对象(不会发生移动)可以触发的事件——4个: dragenter:拖动着进入 dragover:拖动着悬停 dragleave:拖动着离开 drop:释放 整个拖动过程的组成1: dragenter

2.2K30

前端拾零02—H5拖放总结

拖放元素 2.1 拖放元素属性 draggable: 设置元素可被拖放 2.2 拖放元素监听事件 ondragstart: 拖放开始触发事件,作用于拖放元素 ondrag: 拖放期间连续触发事件,作用于拖放元素...ondragend: 拖放完成触发事件,作用于拖放元素 2.3 demo <img id="dragData" width="100" title="<em>拖放</em>对象" src="http://www.csxiaoyao.com...<em>目标</em>元素 3.1 <em>目标</em>元素监听事件 ondragenter: <em>拖放</em>元素进入<em>目标</em>元素<em>时</em>触发事件,作用于<em>目标</em>元素 ondragover: <em>拖放</em>元素在<em>目标</em>元素上移动<em>时</em>触发事件,作用于<em>目标</em>元素 ondrop:...<em>拖放</em>元素在<em>目标</em>元素上放置<em>时</em>触发事件,作用于<em>目标</em>元素 ondragleave: <em>拖放</em>元素离开<em>目标</em>元素<em>时</em>触发事件,作用于<em>目标</em>元素 3.2 demo <div id="div1" ondragenter="dragenter...另外,如果是<em>从</em>其他应用软件或是文件中拖东西进来,尤其是图片的时候,默认的动作是显示这个图片或是相关信息,并不是真的执行drop。此时需要用用document的ondragover事件覆盖 5.

4.2K730

高级前端一面必会面试题合集

person.constructor,其实person中并没有constructor属性,当不能读取到constructor属性,会person的原型 //也就是Person.prototype...说一下 HTML5 drag APIdragstart:事件主体是被拖放元素,在开始拖放拖放元素触发。darg:事件主体是被拖放元素,在正在拖放拖放元素触发。...dragenter:事件主体是目标元素,在被拖放元素进入某元素触发。dragover:事件主体是目标元素,在被拖放在某元素内移动触发。...dragleave:事件主体是目标元素,在被拖放元素移出目标元素是触发。drop:事件主体是目标元素,在目标元素完全接受被拖放元素触发。...dragend:事件主体是被拖放元素,在整个拖放操作结束触发。如何防御 XSS 攻击?

40220
领券