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