问题标签 [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 投票
1 回答
217 浏览

cocoa - 从警报中调用工作表会导致奇怪的窗口问题

我决定使用带有 2 个按钮的警报表。当用户点击继续按钮时,一个由窗口制成的工作表应该下来。工作表下来,父窗口与另一张工作表一起关闭。我正在使用的代码是:

任何人都可以看到这个问题吗?

0 投票
2 回答
2132 浏览

objective-c - NSAlert - 你能有一个自定义图标吗?

有没有办法在 NSAlert 中插入自定义图标?我知道你可以有不同的 prefabbealert 风格,但有可能

0 投票
1 回答
7058 浏览

objective-c - NSApp 的 ModalForWindow、NSAlert 的 ModalForWindow 和 ModalSession 的小技巧

我花了很多时间来消除对 Objective-C 的“ModalForWindow”语言以及如何使用模态会话的困惑。也许以下提示可以节省一些时间:

(如果您不熟悉这个概念:当窗口(通常是面板)运行模式时,它会阻止应用程序的其他部分响应,直到它被关闭。)

“ModalForWindow”在不同的情况下意味着不同的东西。如果您使用 loadNibNamed 来显示由 xib 定义的面板,并且希望它运行模式,请在显示后调用它:

并在其解雇方法中跟进:

但是对于 NSAlert,beginSheetModalForWindow 中的“窗口”是指将作为工作表附加到警报的窗口,该窗口将被冻结直到警报被解除。但应用程序不会被冻结;所有其他窗口将保持可操作。如果您想将警报附加为工作表并冻结 应用程序的其余部分,请按照 beginSheet 代码的简单调用 runModal 并明确使用返回代码,如下所示:

(当然,您已经实现了放弃AlertDidEnd:returnCode:contextInfo: 代码作为类方法。)

或者,如果您希望警报作为居中面板运行,请单独调用 runModal。

假设您要运行一个面板模式,如果用户提交了无效条目,则随后会发出警报。在显示警报之前,您必须停止模式 - 之后,由于某种原因,对 runModalForWindow 的另一个调用无法正常工作。对于这种情况,您需要一个模态会话

1) 将 NSModalSession 属性添加到您的控制器类,因为 modalSession 必须可以跨多个方法访问。

2) 显示面板后,调用 beginModalSessionForWindow 实例化 modalSession:

3) 用一个调用 runModalSession 的 while 循环跟进,当它的返回不等于 NSRunContinuesResponse 时中断:

当用户单击面板的一个按钮时,循环将中断,应用程序将被释放。(在面板的文本字段中键入将使模态会话保持不变。)

4)在你的按钮处理中,如果用户的输入无效,你用runModal调用一个警报。

5) 在警报调用的正下方,在警报解除后将执行的代码中,您放置了上面使用的相同 while 循环。面板的模态会话恢复。

6) 在您关闭面板的处理中,无论是在有效输入还是取消时,您都会调用 endModalSession,奇怪的是,这还不够;即使您从未调用过 runModalForWindow,您也必须调用 stopModal。

0 投票
1 回答
1590 浏览

objective-c - 将披露按钮和 NSTextView 添加到 NSAlert

我想显示一个带有附件视图的 NSAlert。附件视图需要具有:

1) NSExView 用于显示强制内容

2) 带有 NSTextView 的披露按钮

Disclosure 按钮是隐藏和显示第二个 NSTextView 所必需的。但是,同时我希望 NSAlert 对话框调整大小以适应内容。Cocoa 中的“保存”对话框有一个披露按钮,基本上可以做到这一点,我想要与 NSAlert 相同的功能。建议?

0 投票
1 回答
311 浏览

cocoa - 在特定发布时显示 NSAlert

我需要NSAlert在应用程序的第 3 次、第 10 次和第 20 次启动时显示一个,到目前为止我已经尝试过:

上面的代码显示了NSAlert每次启动。

0 投票
3 回答
7027 浏览

objective-c - 让 NSAlert 成为最顶层的窗口?

我在我的应用程序中创建了主窗口以进行以下设置:

这是一个非常自定义的窗口,有点漂浮在桌面上方。

此外,它是一个菜单栏应用程序 ( LSUIElement)。

好的,所以如果出现问题,我需要显示警报。这是我的做法:

当然,我已经填写了按钮和其他文本。

这是我的问题:当我的应用程序当前不是关键应用程序并且弹出此警报时,它不是关键窗口。像这样:

在此处输入图像描述

看看如何没有选择窗口?有没有办法在不改变我的整个应用程序窗口级别的情况下解决这个问题?谢谢!

0 投票
1 回答
433 浏览

objective-c - 应用程序退出时 NSAlertPanel 不工作

我试图让用户决定是否退出应用程序,我一直在尝试使用它来实现它:

我已将它放在我的 AppDelegate.m 中,并将委托链接到我在界面生成器中的主窗口。当我在 Xcode 中调试并运行应用程序并按下关闭按钮时,应用程序窗口会关闭,但不会弹出警报面板。

难道我做错了什么?感谢您的帮助!!我是新来的,我希望有人能帮我解决这个问题。非常感谢!

0 投票
2 回答
1026 浏览

macos - 在 NSAlert 中单击按钮的 AppleScript 代码

我有一个 mac 应用程序,一旦打开(在 中awakeFromNib)向用户显示一个NSAlert带有两个按钮的按钮,一个带有“Option1”,另一个带有“Option2”。我想自动化以下流程:

  1. 从 Applications 文件夹中打开应用程序。
  2. 通过单击 NSAlert 中的按钮选择“Option2”

到目前为止,我只完成了第一部分:

有人可以帮我写代码吗?我知道我可以使用系统事件命令来捕获此单击事件,但无法在线找到任何有关单击 NSAlert 中的按钮而不是常规窗口中的按钮的帮助。

0 投票
1 回答
624 浏览

objective-c - 使用代表打开警报框 (NASlert) 并阻止所有其他窗口?

有没有办法打开一个 NSAlert 窗口,为 didEnd 回调设置一个委托,并且在显示警报时,所有其他窗口都应该“禁用”(窗口本身可以但不能按下任何按钮或更改任何文本)?

0 投票
2 回答
1074 浏览

objective-c - Cocoa 如何显示信息性消息

我需要在 Cocoa 应用程序中显示信息性消息框,我应该使用哪个控件,我阅读了 NSAlert 的文档,但它似乎会创建模态消息框,我需要一些东西,我只会在其中显示一个弹出窗口几秒钟,一段时间后会被它自己摧毁。