【问题标题】:NSAlert Input Box, Validating NSTextFieldNSAlert 输入框,验证 NSTextField
【发布时间】: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


    【解决方案1】:

    设置

    input.delegate=self;
    

    然后实现以下方法

    • (void)controlTextDidChange:(NSNotification *)通知
    • (void)controlTextDidEndEditing:(NSNotification *)通知

    你可以在这里验证

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多