objective-c - 单击按钮时不要关闭 NSAlert

标签 objective-c macos cocoa

我正在展示一个带有自定义 View 和三个按钮的 NSAlert。自定义 View 有两个文本字段,它允许用户登录。

在 Mac App Store 中,出现了一个具有类似设计的 NSAlert。当用户单击登录按钮时,NSAlert 不会关闭(直到验证凭据)。 Apple 如何保持警惕?

最佳答案

获取您想要以不同方式表现的NSButton。改变它的目标和行动。 (要调用原始目标/操作,请在更改它们之前保留它们。)

NSAlert *alert = ...;
NSButton *button = [[alert buttons] objectAtIndex:...];

id oldTarget = [button target];
SEL oldAction = [button action];
[button setTarget:self];
[button setAction:@selector(verifyCredentials:)];

或者,您可能希望将警报构建为自定义窗口 Controller 和 XIB(Apple 在 App Store 中就是这样做的。)在这种情况下,您可以对按钮行为进行细粒度控制。

关于objective-c - 单击按钮时不要关闭 NSAlert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786504/

相关文章:

objective-c - Objective C ARC 释放而不分配变量

ios - 仅在验证输入后启用 UIAlertController 的 UIAlertAction

objective-c - 为 PDF 查看器自动调整 UIViews 的大小

c++ - OpenGL 三角形不会在 macOS 上呈现?

python - 无法在 macOS 上通过 pip 或 conda 安装 parquet "Big Sur"

c++ - 如何将 std::string 的内容获取到 CFData 对象中?

cocoa - NSScrollView 滚动问题

ios - 禁用 UITextView 的放大镜但在 objective-c 中启用链接和电话号码检测

ios - 如何获取_所有_ NSURLRequest 数据?

python - 用于 Mac 开发的 PyObjc 与 RubyCocoa : Which is more mature?