Objective c NSAlert输入框,验证NSTextField

Objective c NSAlert输入框,验证NSTextField,objective-c,macos,nsalert,Objective C,Macos,Nsalert,我遇到了两个主题,它们使用NSAlert讨论输入框,如下所示 - (NSString *)input: (NSString *)prompt defaultValue: (NSString *)defaultValue { NSAlert *alert = [NSAlert alertWithMessageText: prompt defaultButton:@"OK"

我遇到了两个主题,它们使用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)警报视图应启用警报视图按钮:(UIAlertView*)警报视图,以便您验证输入

谢谢。

input.delegate=self;
然后实现以下方法

  • (无效)controlTextDidChange:(NSNotification*)通知
  • (无效)ControlTextDiEndediting:(NSNotification*)通知
你可以在这里验证