问题标签 [nsalert]

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 回答
3127 浏览

cocoa - NSAlert 可以用来创建浮动窗口吗?

NSAlert我有一个 Cocoa 应用程序,它使用该类显示应用程序模式警报。我希望警报窗口浮动在所有其他应用程序的窗口之上。这可以用 来完成NSAlert,还是我需要实现自己的窗口?

我不知道这些是否重要,但该应用程序是一个代理应用程序(LSUIElement是真的),实现为NSStatusItem. (有关该应用程序的更多信息,包括源代码,请查看<此处>。)

这是显示警报的代码:

我试过在runModal通话之前把这个:

我也试过这个:

但是,如果我单击另一个应用程序的窗口,这些都不会使窗口保持在其他窗口之上。我怀疑runModal只是不尊重这些设置中的任何一个。

0 投票
2 回答
1083 浏览

cocoa - 全屏显示 NSAlert

我正在创建一个全屏应用程序,想知道是否有某种方法可以使 NSAlert 超越我创建的 CGDisplayCapture。现在,NSAlert 正在显示捕获的后面显示。我的主窗口显示得很好(在使用 setLevel 调整后),但 NSAlert 似乎没有正常工作。我试图这样做:

但这似乎也不起作用。我想一定有办法做到这一点,但我只是不知道从哪里开始。

任何帮助,将不胜感激。

0 投票
2 回答
1985 浏览

cocoa - 跨正在运行的应用程序更改 NSApplicationIcon?

我想调整在所有警报中自动显示的 NSApplicationIcon 图像,使其与应用程序包中的图像不同。

我知道可以使用 [NSApplication setApplicationIconImage:] 设置停靠栏图标——但这只会影响停靠栏,不会影响其他任何内容。

有时我可以解决这个问题:我有一个 NSAlert *,我可以调用 setIcon: 来显示我的备用图像。

不幸的是,我有很多带有 NSImageView 和 NSApplicationIcon 的 nib,我想影响它们,创建插座并输入代码来更改图标会很麻烦。对于我通过 BeginAlert... 类型调用提出的任何警报(它不会给 NSAlert 对象提供垃圾),我完全不走运。

任何人都可以想出一种合理的方式来全局(对于正在运行的应用程序的生命周期)用我自己的图像覆盖 AppKit 使用的 NSApplicationIcon,这样我就可以替换 100% 的警报(并使我的代码更简单) ?

0 投票
2 回答
1774 浏览

objective-c - 从另一个 NSAlert 的 didEndSelector 调用 NSAlert

我需要根据另一个 NSAlert 的响应提出一个 NSAlert。但是,当我尝试从第一个的 didEndSelector 调用它时,会发生各种令人讨厌的事情(例如我的文档窗口消失以及有关打印到控制台的订购问题的警告)。

有什么想法吗?

0 投票
1 回答
1016 浏览

objective-c - 无法让 NSAlert 不断反弹停靠栏图标

我似乎有与停止码头反弹的问题完全相反的问题。

我无法让我的应用程序不断弹跳停靠图标!

我也讨厌不断弹跳停靠图标,但在这种情况下,如果用户没有意识到我的应用程序无法启动,他们可能会丢失数小时的时间跟踪数据。

这是我放在应用程序委托 applicationWillFinishLaunching: 方法中的代码。

我试过删除 requestUserAttention 行。

我尝试将 requestUserAttention 行放在很多不同的地方:直接在 runModal 调用之前,第一件事等。

我试过删除 activateIgnoringOtherApps 行。

无论我做什么,停靠图标都会反弹一次然后停止。

用户可能会在我将其置于最前面时看到我的应用程序,但如果他们在正确的时间单击,他们的活动应用程序可能会隐藏严重错误消息。

所以我想要一些东西,即使他们的码头被隐藏了,他们也知道有些事情是不对的。

我正在 Mac OS X 10.5 Leopard 上构建它。关于我做错了什么的任何想法?或者 Leopard 不再支持不断弹跳的停靠栏图标了?

更新:

我将方法调用放在 applicationWillFinishLaunching 中:

一旦我将它放入 applicationDidFinishLaunching:,并删除了 activateIgnoringOtherApps: 调用,它就会按要求工作。

但是,我的问题仍然是“我可以将我的应用程序放在前面以及弹跳停靠图标吗?从第一个答案来看,似乎不是,尽管我不确定我明白为什么。

更新:

我不明白为什么,因为我没有考虑清楚。既然有人向我指出,窃取焦点意味着扩展坞得到了它想要的东西,这完全有道理。

结论

如果您希望用户注意,请不要使用 [NSApp activateIgnoringOtherApps:YES];

0 投票
5 回答
3858 浏览

iphone - UIAlertView 每次调用都会弹出 3 次而不是一次

在我的程序的两个不同部分,我从 NSAlert 中得到了奇怪的行为。行为是:

  1. 警报出现,然后自发消失。
  2. 警报会再次出现,然后一直存在,直到被用户解除,即正常行为。
  3. 警报再次出现。

此行为仅在第一次调用显示警报的方法时发生。在第一次之后,它的行为正常。

这是发生行为的部分之一的代码:

或者,如果您愿意,可以使用更多上下文:

有任何想法吗?谢谢。

编辑 - - - - -

发生这种情况的另一个地方是:

对于上下文,第一种情况在 AppDelegate 中,第二种情况在视图控制器中,用于第一个选项卡视图。第二个问题在没有互联网连接的情况下每次重新加载 xml 时都会出现。第一个仅在第一次调用该函数时发生。

编辑 - - -

如果我移动警报,它会起作用。不幸的是,这不是我想要的!

更新:

我设置了一些 NSLog 条目,发现尽管添加[locMan stopUpdatingLocation]了 didUpdateToLocation 函数,但它仍在运行多次。

我猜想自发消失是因为再次调用警报视图并且程序清除了第一个实例以自动为第二个实例让路。

关于为什么[locMan stopUpdatingLocation]不起作用的任何想法将不胜感激,但同时我只是将 locationAlert 的声明移出函数(因此它是全局的),将其设置在初始的定位我函数中并使用以下第一个它被称为时间:

这样它就可以完美地工作。

0 投票
1 回答
243 浏览

cocoa - 显示工作表时可用的主菜单

对通过鼠标单击或通过键盘调用的菜单项有何反应,例如: CMD+Q ?

0 投票
1 回答
649 浏览

cocoa - 在后台进程中将 NSRunAlertPanel 对话置于最前面

如果你打电话

在 Cocoa 的后台进程中,对话不会出现在前面,而是停留在其他窗口的后面。这篇文章表明,如果将进程转换为前台进程,则可以将对话置于最前面。但是,如果您将进程保留为后台进程,有没有办法实现这种行为?

0 投票
1 回答
957 浏览

cocoa - 尝试关闭时 NSWindow 显示警报

当 NSWindow 尝试关闭时,如何显示 NSAlert?这也必须打开和关闭。

0 投票
2 回答
1801 浏览

objective-c - Focus NSAlert 配件

我有一个 NSAlert 项,它使用 NSTextField 作为附件项来提供类似提示的对话框。我唯一的问题是,当警报运行时,文本字段没有聚焦。我试图寻找一种方法来改变 NSAlert 的第一响应者,但一无所获。有没有办法在 NSAlert 中轻松聚焦附件项目?