问题标签 [nsdragginginfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3183 浏览

cocoa - 如何禁用 NSTextField 的拖放功能?

我想禁止将任何内容放入我的 NSTextField。在我的应用程序中,用户可以将 iCal 事件拖放到 GUI 的不同部分。现在我有一个测试用户不小心将 iCal 事件放到了文本字段中——但他没有意识到这一点,因为文本被插入到我在单行文本字段中看到的行的上方。

(您可以通过单击文本字段并使用键盘排成一行来显示插入的文本 - 但普通用户不会这样做,因为他/她甚至不会意识到首先插入了某些内容!)

我试过registerForDraggedTypes:[NSArray array]](似乎没有任何效果)以及实现draggingEntered:委托方法返回NSDragOperationNone(委托方法甚至没有被调用)。

有任何想法吗?

编辑:当然,将某些内容放到 NSTextField 上只有在它具有焦点时才有效,正如 ssp 在他的博客中和Daniel Jalkut 对博客条目的评论中所描述的那样。

0 投票
2 回答
15038 浏览

objective-c - 在 Objective-C 中定义和使用协议

我正在尝试扩展 NSImageView 以便我可以将拖放责任委托给控制器。对于编译器现在显示有关向具有类型 id 的对象发送消息的警告的一个问题,这一切都很好。为了解决这个问题,我假设我只需在 ivar 的类型后面加上协议名称即可。但是,这会因无法找到协议定义的消息而惨遭失败。

任何我可能会出错的指针?我敢肯定它一定很简单,但我对 obj-c 很陌生。

0 投票
1 回答
725 浏览

objective-c - 拖放不适用于 NSBox 的子类

我创建了一个 NSBox 的子类来实现拖放。我有以下代码:

但是,拖放不起作用。当我尝试将某些东西拖入盒子时,我没有看到小绿色加号。

谢谢

0 投票
1 回答
2436 浏览

cocoa - 如何在 obj-c 中拖放“.txt”文件

我正在尝试编写一些绝对准系统的代码,我可以将一个普通的“dot.txt”文件拖到一个 NSWindow 上并读入数据(没有比这更有趣的了),但是我能够找到使用的所有示例图像和 NSView 等。Apple 在其“可可拖放编程主题”文档中的“拖动文件内容”部分确认可以拖动到普通的 NSWindow(而不是 NSView 等)上,并且似乎正在讨论我的确切内容我正在尝试这样做,但作为一个相对新手,我仍然觉得它对图像和框架的引用令人困惑。

任何人都可以帮助我开始,向我展示“registerForDraggedTypes”的位置,而不是将其放入说,“initWithFrame”或“initWithCoder”方法,以及注册什么类型?一旦我得到窗口来识别我的拖动,我可以稍后再担心其他“performDragOperation”和“draggingEntered”的东西。

谢谢 :-)

0 投票
1 回答
449 浏览

objective-c - 如何使用 NSDraggingInfo 或类似方法检测是否取消了拖动操作?

我创建了一个 NSImageView 的子类,并实现了用于在同一类的其他实例之间拖动图像的非正式协议。我在拖动操作之前保留对视图图像的引用,并且能够在给定特定标准的情况下将其设置回所述图像。

但是,我似乎无法检测到拖动操作是否被取消。我知道调用了 draggingEnded 方法,但是在拖动成功时也会调用它。有任何想法吗?

0 投票
1 回答
1333 浏览

cocoa - NSTableView 删除应用程序文件,出了什么问题?

我有以下代码来支持将应用程序文件拖放到表格视图中。问题是当我拖放时我什至看不到绿色+。我认为这与它有关,registerForDraggedTypes:但我不确定。我尝试了很多教程,但没有一个对我有用。

提前致谢

0 投票
1 回答
1236 浏览

objective-c - Cocoa WebView 拖放


在我的应用程序中,我有一个 NSOutlineView,其中包含一些文件列表和一个 WebView,
用户允许将任何项目从大纲视图拖到 WebView,然后,我想处理数据库事务,

在大纲视图中,我实现了以下方法,

在 WebView 方面,我实现了以下方法,

现在,当我将一个元素从大纲视图拖动到 WebView 时,我可以看到,大纲视图的 writeItem 被调用,
而在 Webview 中,DragEnter 被从哪里调用,我没有返回拖动操作 NONE,而是返回 NSDragoperationEvery,

问题是,我没有得到方法 prepareForDragOperation 和 PerformDragOperation,

谁能帮助我,
亲切的问候
罗汉

0 投票
2 回答
1990 浏览

objective-c - 如何使用 NSStatusItem 作为拖动目的地?

我正在尝试构建一个允许用户将文件从 Finder 拖到菜单栏图标进行处理的应用程序。我在旅途中取得了进步,但我似乎无法登上这座小山。我尝试继承 NSView 并实现拖动消息。

我不仅想接受拖动操作,还想在用户单击图标时提供 NSMenu 。我已经设法让 NSMenu 正确显示,但拖动功能仍然难以捉摸。

我的理解是我需要注册我在这里所做的接受的拖动类型:

拖动消息:

这是设置自定义视图的代码:

依然没有。那么我哪里出错了?

谢谢!

0 投票
1 回答
1413 浏览

objective-c - 拖放不适用于 NSTableView

我已经在我的应用程序中实现了拖放功能。所有功能都很好,但是当我们将图像拖入时NSTableView

方法没有被调用。

谁能告诉我这个方法没有被调用的原因?

即使我也实现了这个......

0 投票
1 回答
2865 浏览

objective-c - 拖放 - 仅接受文件夹

我正在编写一个需要接受文件夹删除的自定义视图。条件是:只接受目录,所以当用户拖动文件时什么都不会发生。

我已经注册了我的观点:

并且已经实现了基本的拖动协议方法。出于测试目的:

所以它几乎可以正常工作:在视图上拖动光标时会出现一个加号。但是,如果该项目是常规文件,我想避免这种情况。

一旦我得到拖动的路径,我可能需要使用 NSFileManager 来执行此操作(尽管我想知道是否有更简单的方法),但问题是在哪里。我试图在draggingEntered:返回NSDragOperationNone的方法中包含测试权,但没有成功。我正在关注 Apple 文档中的一个片段:

我应该在哪里实现这个测试,所以如果拖动文件,光标保持不变?