弹出样式对话框

时间:2011-10-26 15:43:22

标签: objective-c cocoa

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

由于

1 个答案:

答案 0 :(得分:5)

我只是四处搜索,并且有人找到一种方法来显示带有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的默认值,以及用户输入的日志,是否取消等等。

希望有效! :)