【问题标题】:pop up style dialog弹出样式对话框
【发布时间】:2011-10-26 15:43:22
【问题描述】:

我有一个弹出按钮,它以编程方式加载了 5 个选项,如果选择了一个特定选项,比如说“追加文件名的结尾”,那么我的更新功能需要导致一个带有textField 和一个保存和取消按钮出现。我不知道该怎么做。 我能够得到一个很好的 NSAlert 示例来工作,但它不需要我知道的 textField。 是否有我应该使用的对话框类或其他模式,或者我应该尝试创建第二个笔尖?在任何一种情况下,我都不知道该怎么做,所以一个好的例子或教程会很棒。

谢谢

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    我刚刚四处搜索,有人发现有一种方法可以显示带有 NSTextField 的 NSAlert、按钮并获取用户刚刚输入的文本。我是here, on the Macrumors forums, slightly old..

    基本上你可以选择:

    NSString *prompt = @"Please enter text to append to file name:";
    NSString *infoText = @"What happens here is...";
    NSString *defaultValue = @"Default Value";
    
    NSAlert *alert = [NSAlert alertWithMessageText: prompt
                                     defaultButton:@"Save"
                                   alternateButton:@"Cancel"
                                       otherButton:nil
                         informativeTextWithFormat:infoText];
    
    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];
        NSLog(@"User entered: %@", [input stringValue]);
    } else if (button == NSAlertAlternateReturn) {
        NSLog(@"User cancelled");
    } else {
        NSLog(@"bla");
    }
    

    该代码将显示 NSAlert,带有可自定义的提示、信息性文本和 NSTextField 的默认值,以及记录用户输入的内容、他们是否取消等。

    希望有效! :)

    【讨论】:

    • 我试过这段代码,即使它很旧,它看起来也很专业。我没有得到的两件事是相对于打开它的窗口的位置设置(我读过一篇说需要移动到“工作表”的帖子?)和盒子的大小设置(不太重要)
    猜你喜欢
    • 2018-12-05
    • 1970-01-01
    • 2015-09-17
    • 2012-06-07
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多