问题标签 [nscursor]

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 投票
2 回答
1639 浏览

objective-c - 如何在自定义 NSView 中设置光标?

我有一个自定义视图,需要根据鼠标的位置设置光标。我用来[NSCursor set]mouseMoved:处理程序中设置光标。这适用于 OS X 10.5,但大多数时候不适用于 10.6。有时光标会改变,但通常不会。

问题是我必须设置光标以响应mouseMoved:事件,我无法注册光标矩形或使用 aNSTrackingAreaupdateCursor:事件。我正在为 NetSurf 浏览器开发 Cocoa 前端。引擎期望来自前端的鼠标移动事件。如果光标位于链接或需要不同光标的东西上,引擎会从前端调用一个函数来设置新光标。

关于如何在雪豹上进行这项工作的任何想法?

0 投票
1 回答
638 浏览

cocoa - 我可以从非活动应用程序更改当前光标吗?

我有一个在后台运行的实用程序 Mac 应用程序(已LSUIElement启用)。在某些情况下,此应用程序会显示一个带有多个按钮的菜单窗口。问题是,当我将鼠标悬停在此窗口上时,鼠标光标仍会根据其下方的应用程序运行——当菜单下有文本时,光标会变为插入“I beam”形状。

显然我更喜欢常规的指针箭头。NSTrackingArea经过一些黑客攻击后,我已经潜入和朋友们,我可以检测到鼠标进入和鼠标退出事件。但是当我尝试使用NSCursor鼠标输入更改当前光标时,什么也没有发生。看起来机器拒绝从非活动应用程序更改光标,因为当我在鼠标输入事件之前激活应用程序时,光标会更改。

我不想仅仅为了改变光标而切换活动的应用程序。有没有办法从非活动应用程序中调整光标?

PS 在 cocoa-dev 上也有同样的问题:one , two

0 投票
2 回答
220 浏览

objective-c - 如何从其他框架获取图像?

我想要一个与 Lion 形状相同的光标

所以而不是这样: NSC光标图标

我想要这个:狮子中的NSCursor

可以在以下位置找到: System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/resizeeastwest/cursor.png在新的 OSX 10.7 GM 中

有没有办法可以使用 NSBundle 中的方法加载该图像?如果我可以使用系统中的图像,我希望在我的应用程序中使用不同的图像(作为资源)。

0 投票
1 回答
2956 浏览

macos - NSCursor set 命令的最简单使用

我正在尝试为我的 OSX 应用程序获取自定义光标。在过去的几个小时里,我读到过这样做没有成功。所以我已经转移到最简单的方面,只需将当前光标设置为十字准线光标,在一个绝对没有别的项目中。

这是最基本的设置,它不会改变我的光标。使用 XCode,我创建了一个新的 Cocoa 项目。我编写的唯一一段代码是以下函数中的一行。

这不会改变光标,这可能意味着我错过了一些非常基本的东西,但无法为我的生活弄清楚。

我尝试了很多变体,使用 NSCursor -push 方法来更改当前光标,但它不起作用。我还尝试放置一个 NSButton,然后按照此处建议的不同答案进行操作(其中按钮的类型为 NSButton *):

我以前为 iPhone 写过几个应用程序,但从来没有为 Mac 写过,但看起来很相似。我错过了一些无可救药的愚蠢吗?我也尝试过使用 addCursorRect:cursor: 方法,但我不确定我做对了。目前尚不清楚应该调用什么函数以及从哪里调用它。

一旦我弄清楚如何显示任何不同的光标,然后我想继续为光标制作我自己的图像。

谢谢!

0 投票
1 回答
616 浏览

cocoa - 自定义 NSCursor 并不适用于所有应用程序

我编写了一个 Cocoa 程序来在按下按钮后更改光标。具体而言,光标包括图像而不是指针。我使用以下命令设置它:

这有效并且光标正确更改。但是,此更改并不适用于所有应用程序。例如,当我在幻灯片模式下切换到 Keynote 演示文稿时,光标会变回箭头。当我切换到 PDF 全屏显示进行演示时,光标变为手形(我相信这些是各个应用程序设置的默认光标)。

我的问题是:有什么方法可以覆盖这些,只为所有应用程序保留我的自定义光标?即使在 Keynote 幻灯片放映和 PDF 全屏视图期间,我也想保留更改后的光标。有任何想法吗?

谢谢!

0 投票
2 回答
734 浏览

cocoa - 如何编写一个可以影响更改(自定义光标、绘制图像)的 OS X 应用程序,即使它不处于活动状态?

我之前问过一个关于在 OSX 上更改系统范围内的光标的问题。我使用 NSCursor 更改光标,但效果只有在应用程序处于活动状态时才会生效。当另一个应用程序变为活动状态时,自定义光标将丢失。

这是一个相关的,更一般的问题。如何编写具有系统妻子效果的应用程序?例如,即使您的应用程序未处于活动状态,也可以在屏幕上绘制图像,而其他东西是否处于活动状态?

我知道我可能需要比 Cocoa API 更低的级别。我只是不知道从哪里开始寻找?我需要查看任何特定的 Carbon API 吗?甚至更低?

任何指针将不胜感激!如果您特别知道如何在系统范围内更改光标或如何绘制图像并四处移动(无论哪个应用程序处于活动状态),那也可以解决我当前的问题!我可以编写一个安装在系统上时可以实现此目的的应用程序吗?

谢谢!

0 投票
2 回答
590 浏览

objective-c - 更改特定视图的 NSCursor

我试图在光标经过视图时更改光标,但我想我没有正确编码它,因为它不工作。

我有一个 appcontroller 类,在它的 .m 文件中我有这个

0 投票
1 回答
4035 浏览

macos - 如何使用 NSCursor 显示自定义光标

我正在尝试使用 nscursor 在我的游戏中使用自定义光标。我使用以下代码

我在 resetcursorrect 方法中设置光标 rect

出现自定义光标,不一致,有时会切换回系统光标(用于警报),有时会返回,有时不会。这太令人困惑了。我不确定是否应该使用“setOnMouseEntered”、“pop”。使用 nscursor 并动态更改它的标准方法是什么。

0 投票
3 回答
3190 浏览

xcode - NSCursor:“set”方法无效

我正在使用 Xcode(使用 cocos2d)开发 Mac 应用程序,尝试配置光标,而“set”方法在某些情况下似乎没有任何效果......

我已经很难在应用程序启动时设置光标(NSTimer 在应用程序真正启动后设置它),现在我只希望它在用户单击时显示另一个图像;我为此使用 NSNotification,我的光标类收到通知,然后它应该设置新图像,然后......什么都没有。

以下是一些可能有帮助的代码:

在初始化中:

和方法:

当应用程序变为活动状态时,也会调用“updateCursor”方法,然后它工作正常,显示正确的光标。
我已经尝试了很多东西,pop 和 push 方法,“setOnMouseEnter”(虽然我还没有使用 rect),但没有结果......
有人知道这个吗?

编辑:

陌生人,我写了appWake方法:

由通知调用:

通过以下方式在 appDelegate 中设置:

当它被这个通知调用时,它工作正常,光标随机变化;但是如果我删除 applicationDidBecomeActive 中的通知并在我的代码中的其他地方调用它,那么它不会做任何事情(尽管我检查它是否被调用)......

0 投票
1 回答
452 浏览

macos - 调用 [NSCursor set] 是否会影响性能?

我正在开发一个具有自定义视图的应用程序,用户可以在其中移动视图周围的对象。他们可以捡起它们并将它们放在不同的地方,我想根据他们可以拾取的对象以及可以将它们放置的位置来改变光标。

我正在使用跟踪区域,但为了保持正确的光标,我正在使用跟踪区域通知并将光标设置为任何鼠标移动。

这运作良好,我有我的解决方案,但我想知道[NSCursor set]如此频繁地调用是否会降低性能,或者是否AppKit能够毫无问题地处理这个问题?

更新:根据Rob Keniger的建议,我已经对应用程序进行了分析,并没有看到更改光标所花费的任何实际时间。为了安全起见,我已经实现了一个简单的宏来保持当前光标状态,并且只在必要时设置它,如此处所定义:

您将在代码中调用它: