Created by Linxi 2020/05/30
弹窗 NSAlert
简单示例
NSAlert *alert = [[NSAlert alloc] init];
alert.alertStyle = NSAlertStyleWarning;
alert.messageText = @"提示";
alert.informativeText = @"请先选择文件";
[alert addButtonWithTitle:@"确定"];
[alert runModal];
-
alert.messageText
NSAlertStyleWarning / NSAlertStyleInformational
NSAlertStyleCritical
-
alert.showHelp = YES; 这时候会多个帮助按钮,点击 帮助按钮 需要遵循协议
NSAlertDelegate,实现- (BOOL)alertShowHelp:(NSAlert *)alert协议方法即可。 -
使用
beginSheetModalForWindow:completionHandler:方式弹出弹窗,会贴在窗口那里,并且如果有多个按钮的话,可以在block回调里得知具体的点击项目。 -
addButtonWithTitle:如果你有很多按钮的话,可以用这个方法一直添加按钮。排列方式是从右到左[alert addButtonWithTitle:@"确定"]; [alert addButtonWithTitle:@"确定2"]; [alert addButtonWithTitle:@"确定3"]; [alert addButtonWithTitle:@"确定4"]; [alert addButtonWithTitle:@"确定5"]; -
alert.accessoryView在AlerView内添加自定义View,目前只测试了用文本可行。NSTextView *accessory = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,200,15)]; NSFont *font = [NSFont systemFontOfSize:[NSFont systemFontSize]]; NSDictionary *textAttributes = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; NSAttributedString *attr = [[NSAttributedString alloc] initWithString:@"Text in accessory view." attributes:textAttributes]; [accessory insertText:attr replacementRange:NSMakeRange(0, attr.length)]; [accessory setEditable:NO]; [accessory setDrawsBackground:NO]; alert.accessoryView = accessory;
打开文件 NSOpenPanel
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
[openPanel setPrompt: @"打开"];
// 限制文件类型
openPanel.allowedFileTypes = [NSArray arrayWithObjects: @"db", nil];
// 指定初始路径,空的话标识使用上次的打开记录所在的文件夹。
openPanel.directoryURL = nil;
// 是否允许多选
openPanel.allowsMultipleSelection = YES;
// 是否允许选择文件
openPanel.canChooseDirectories = YES;
// 显示隐藏文件
openPanel.showsHiddenFiles = YES;
[openPanel beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse returnCode) {
if (returnCode == 1) {
NSLog(@"%@",openPanel.URLs.lastObject.path);
}
}];
保存文件到路径下 NSSavePanel
NSSavePanel *savePanel = [NSSavePanel savePanel];
savePanel.title = @"保存文件";
savePanel.message = @"保存加密后的文件路径";
// 默认保存的文件名
savePanel.nameFieldStringValue = @"ExportOptions.db"];
// 是否允许创建文件夹
savePanel.canCreateDirectories = YES;
// 文件类型
savePanel.allowedFileTypes = @[@"db"];
// 是否隐藏后缀名
savePanel.extensionHidden = NO;
[savePanel beginWithCompletionHandler:^(NSModalResponse result) {
if (result == NSModalResponseOK) {
NSString *path = [[savePanel URL] path];
NSLog(@"%@",path);
}
}];