小编jim*_*eus的帖子

"非激活"模式中的NSPanel并不总是显示正确的游标

我在XCode 4.6中创建了一个简单的Cocoa-Application,NSPanel而不是默认的NSWindow.当我启用非激活选项并启动应用程序时一切正常:

面板显示在其他所有内容之前,当鼠标光标悬停在面板边缘时,它会从正常的箭头光标变为适当的调整大小光标,因此用户知道他可以调整面板的大小.

这可以正常工作,因为我没有点击任何其他应用程序,例如Safari或Finder.

从我曾经把焦点放到另一个应用程序的那一刻起,我可以点击并将鼠标悬停在我的面板上,光标样式将不会再改变 - 它始终保持箭头状态,并且无法恢复正常行为.

面板保持可选,在前面,您仍然可以移动并调整其大小,但鼠标光标始终保持箭头状态.然后,您甚至无法使用以下内容手动更改它:[[NSCursor crosshairCursor] set].

所以我需要找到一种方法来创建一个NSPanel保持正常自动更改 - cursorstyle - 当悬停在面板边缘 - 行为时,即使您将焦点放在另一个应用程序上.

我已经尝试使用自定义的NSPanel类,我已经覆盖了 canBecomeKeyWindowcanBecomeMainWindow方法,所以他们返回YES但即使我制作我的Panel KeyWindowMainWindow...

[myPanel makeKeyAndOrderFront:self];
[myPanel makeMainWindow];
Run Code Online (Sandbox Code Playgroud)

...它无法解决游标问题.

如果有人能在这里帮助我会很棒:)

PS.:在我的项目中,Base SDK和Deployment Target设置为10.8


所以我发现所描述的问题与面板的窗口状态无关.如果将其设置为key或main,则无关紧要,而是游标问题(始终保持箭头)与应用程序的激活状态相关.

只要拥有该面板的应用程序处于活动状态,但是如果您单击另一个应用程序,我的应用程序将被停用并且不会再次激活 - 即使您单击该面板 - 因为non-activating启用了" " 选项,所以一切正常.

问题是我需要" - 选项 - non activating因为我正在创建一个状态栏屏幕捕获应用程序,应该显示并在其他所有操作之前运行,但不会停用任何正在运行的应用程序.我可以解决光标问题

[NSApp activateIgnoringOtherApps];

但随后拍摄在Safari中运行的全屏视频的屏幕截图会停用Safari并最小化视频,这是我不想要的.

cocoa objective-c cursor nspanel

11
推荐指数
1
解决办法
726
查看次数

如何修改 AWS EventBridge 规则以使用 AND 而不是 OR 过滤器逻辑?

每次在名为“mybucket”的 S3 存储桶中创建 S3 对象时,我想通过 EventBridge 触发 AWS lambda 函数,但前提是其名称/密钥以“.csv”后缀结尾并且是在“”中创建的在该存储桶的“文件夹中。我目前拥有的 EventBridge 规则是这样的:

{
  "detail-type": ["Object Created"],
  "source": ["aws.s3"],
  "detail": {
    "bucket": {
      "name": ["mybucket"]
    },
    "object": {
      "key": [{
        "suffix": ".csv"
      }, {
        "prefix": "in/"
      }]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我实际上希望这个规则能够以正确的方式工作,但事实并非如此,相反,它的行为就像后缀和前缀过滤条件之间存在 OR 关系一样。据我了解AWS文档(https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html#eb-filtering-complex-example)上述规则应定义后缀和前缀过滤条件之间的 AND 关系,类似于文档中给出的示例:

{
  "time": [ { "prefix": "2017-10-02" } ],
  "detail": {
    "state": [ { "anything-but": "initializing" } ],
    "c-count": [ { "numeric": [ ">", 0, "<=", 5 ] } ],
    "d-count": [ { "numeric": [ …
Run Code Online (Sandbox Code Playgroud)

rules pattern-matching amazon-web-services suffix aws-event-bridge

5
推荐指数
1
解决办法
1866
查看次数