hpi*_*que 3 macos cocoa nsopenpanel
我想添加一个复选框NSOpenPanel,然后在接收所选文件时查询其状态.我怎样才能做到这一点?
另外,希望能够基于当前文件选择启用或禁用复选框.
基于Joshua Nozzi和Mark Alldritt答案的完整解决方案:
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
NSButton *button = [[NSButton alloc] init];
[button setButtonType:NSSwitchButton];
button.title = NSLocalizedString(@"I am a checkbox", @"");
[button sizeToFit];
[openDlg setAccessoryView:button];
openDlg.delegate = self;
[openDlg beginSheetModalForWindow:self.window completionHandler:^(NSInteger result)
{
openDlg.delegate = nil; // TODO: Check if this is necessary
if (result != NSFileHandlingPanelOKButton) return;
BOOL checkboxOn = (((NSButton*)openDlg.accessoryView).state == NSOnState);
// Do something
}];
Run Code Online (Sandbox Code Playgroud)
NSOpenSavePanelDelegate:
- (void)panelSelectionDidChange:(id)sender {
NSOpenPanel *panel = sender;
NSButton *button = (NSButton*)panel.accessoryView;
// Update button based on panel selection
}
Run Code Online (Sandbox Code Playgroud)