NSAlert输入框,验证NSTextField

4

我遇到了一些讨论使用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让您验证输入内容。
谢谢。
1个回答

4

设置

input.delegate=self;

然后实现以下方法:

  • (void)controlTextDidChange:(NSNotification *)notification
  • (void)controlTextDidEndEditing:(NSNotification *)notification

您可以在此处验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接