2011-10-26 167 views
1

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

感谢

回答

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,再加上记录用户输入的内容,他们是否取消等

希望工程! :)

+0

我试过这段代码,它看起来很专业,即使它是旧的。两件事我没有得到,虽然是相对于打开它的窗口的位置设置(我读了一篇文章,说需要移动到一个“表”)和框的大小设置(重要性不那么重要) – Miek