单击按钮时,请勿关闭NSAlert

Jac*_*ies 4 macos cocoa objective-c

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

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

Jon*_*pan 9

NSButton你想要表现得与众不同.改变目标和行动.(要调用原始目标/操作,请在更改之前保留它们.)

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

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

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