我尝试创建一个NSOpenPanel
子类,允许prompt
(打开按钮标题)在用户按住Option键时更改,如下所示:
class CustomOpenPanel: NSOpenPanel {
var standardPrompt: String?
var alternatePrompt: String?
override func flagsChanged(theEvent: NSEvent) {
super.flagsChanged(theEvent)
if standardPrompt == nil && alternatePrompt == nil {
return;
}
let optionKeyDown = (theEvent.modifierFlags & .AlternateKeyMask) != nil
self.prompt = optionKeyDown ? alternatePrompt : standardPrompt
}
}
但是当我创建一个实例时(如此):
CustomOpenPanel *openPanel = [CustomOpenPanel openPanel];
我收到此消息:
AppDomain.CustomOpenPanel不是沙盒支持的子类
我想将此功能添加到我的应用中,并且我愿意接触其他方法,但是没有看到任何可行的功能。
prompt
属性的目标,因为修改键被按下了?答案 0 :(得分:1)
抱歉,不希望您听到:
没有。您不能将沙箱下的标准文件面板子类化或添加类别。
自定义仅限于您在运行面板之前可以设置的属性以及您可以通过委托实现的属性。
你可能会找到一种方法来做到这一点,我犹豫是否提出任何建议,因为在沙盒下玩文件面板是疯狂的途径,但它的强大可能性很低。
因此,在不触及文件面板的情况下,考虑另一种满足您需求的方法。