【发布时间】:2013-05-19 13:12:40
【问题描述】:
我遇到了几个讨论使用 NSAlert 的输入框的主题,如下所示。
- (NSString *)input: (NSString *)prompt defaultValue: (NSString *)defaultValue {
NSAlert *alert = [NSAlert alertWithMessageText: prompt
defaultButton:@"OK"
alternateButton:@"Cancel"
otherButton:nil
informativeTextWithFormat:@""];
NSTextField *input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)];
[input setStringValue:defaultValue];
[alert setAccessoryView:input];
NSInteger button = [alert runModal];
if (button == NSAlertDefaultReturn) {
[input validateEditing];
return [input stringValue];
} else if (button == NSAlertAlternateReturn) {
return nil;
} else {
return nil;
}
}
因此,您可以像在 iOS 中使用 AlertView 一样插入文本框。但是如何验证文本字段值以启用和禁用默认按钮? iOS 有 (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 让您验证输入。
谢谢。
【问题讨论】:
标签: objective-c macos nsalert