Objective c 弹出式样式对话框

Objective c 弹出式样式对话框,objective-c,cocoa,Objective C,Cocoa,我有一个弹出按钮,通过编程加载了5个选项,如果选择了一个特定的选项,比如“追加文件名的结尾”,那么我的更新功能需要出现一个带有文本字段和保存和取消按钮的小弹出窗口。我不知道怎么做。 我能够得到一个很好的NSAlert示例,但它没有我所知道的文本字段。 我应该使用对话类或其他模式,还是应该尝试创建第二个nib?在这两种情况下,我都不知道怎么做,所以一个好的例子或教程会很好 谢谢我刚刚搜索了一下,有人找到了一种方法,可以显示带有NSTEXT字段、按钮的NSAlert,并获取用户刚刚键入的文本。它是

我有一个弹出按钮,通过编程加载了5个选项,如果选择了一个特定的选项,比如“追加文件名的结尾”,那么我的更新功能需要出现一个带有文本字段和保存和取消按钮的小弹出窗口。我不知道怎么做。 我能够得到一个很好的NSAlert示例,但它没有我所知道的文本字段。 我应该使用对话类或其他模式,还是应该尝试创建第二个nib?在这两种情况下,我都不知道怎么做,所以一个好的例子或教程会很好


谢谢

我刚刚搜索了一下,有人找到了一种方法,可以显示带有NSTEXT字段、按钮的NSAlert,并获取用户刚刚键入的文本。它是

基本上,你可以选择:

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,带有可定制的提示、信息性文本和NSTEXT字段的默认值,以及记录用户输入的内容、是否取消等


希望能奏效!:)

我刚刚搜索了一下,有人找到了一种方法,可以显示一个NSAlert,其中包含一个NSTextField、按钮,并获取用户刚刚键入的文本。它是

基本上,你可以选择:

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,带有可定制的提示、信息性文本和NSTEXT字段的默认值,以及记录用户输入的内容、是否取消等


希望能奏效!:)

我试过这个代码,它看起来很专业,即使它是旧的。有两件事我不明白,一是相对于打开它的窗口的位置设置(我读到一篇文章说需要移动到“工作表”?),二是框的大小设置(不太重要)。我尝试了这段代码,它看起来很专业,即使它很旧。有两件事我不明白,一是相对于打开它的窗口的位置设置(我读到一篇帖子说需要移动到“工作表”?),二是框的大小设置(不太重要)