我有一个用于复选框的NSAlert
withsetShowsSuppressionButton:YES
和两个名为OK
and的按钮Cancel
。每当我们单击(检查)抑制按钮时,如何使Cancel
按钮变为禁用状态?
问问题
879 次
2 回答
1
您需要禁用该按钮并设置action
和的target
属性suppressionButton
:
alert = [[NSAlert alloc] init];
[alert setMessageText:@"text"];
[alert addButtonWithTitle:@"OK"];
[alert addButtonWithTitle:@"Cancel"];
[alert.buttons[0] setEnabled:NO];
[alert setShowsSuppressionButton:YES];
[alert.suppressionButton setTitle:@"You need to activate me first"];
[alert.suppressionButton setTarget:self];
[alert.suppressionButton setAction:@selector(selectClicked:)];
[alert runModal];
然后,在动作处理程序中,您可以enabled
根据复选框的状态切换按钮的属性:
-(IBAction)selectClicked:(NSButton *)sender {
for (NSView *view in sender.superview.subviews) {
if ([view isKindOfClass:[NSButton class]]) {
NSButton *button = (NSButton *)view;
if ([button.title isEqualToString:@"OK"]) {
button.enabled = (sender.state == NSControlStateValueOn);
}
}
}
}
于 2020-05-26T08:30:31.247 回答
0
一旦抑制按钮处于活动状态,就设置一个布尔值,并在创建警报时检查它,或者使用 if else 语句检查它,创建两个不同的警报之一,一个有取消,一个没有取消。
于 2013-06-24T19:15:55.280 回答