【问题标题】:Cocoa: NSPathControl NSOpenPanel, get notification when user clicked OKCocoa:NSPathControl NSOpenPanel,当用户点击确定时得到通知
【发布时间】:2013-09-03 13:32:22
【问题描述】:

我在 IB 中设置了 NSPathControll,我在设置 NSOpenPanel 时使用此方法:

-(void)pathControl:(NSPathControl *)pathControl willDisplayOpenPanel:(NSOpenPanel *)openPanel
{
    [openPanel setDelegate:self];
    [openPanel setCanChooseDirectories:YES];
    [openPanel setCanCreateDirectories:YES];
    [openPanel setCanChooseFiles:NO];
    [openPanel setPrompt:@"Choose"];
}

我想知道用户何时单击“确定”按钮(在本例中为“选择”按钮)。

如果我使用-(void)panel:(id)sender directoryDidChange:(NSString *)path,我只会在用户双击文件夹时收到通知。

有什么想法吗?

提前致谢!

【问题讨论】:

    标签: cocoa nsopenpanel nspathcontrol


    【解决方案1】:

    我解决了这个问题:

    -(BOOL)panel:(id)sender isValidFilename:(NSString *)filename
    

    我在寻找“panel:(id)sender didClose”或类似的东西。

    /M

    【讨论】:

    • Apple 已弃用其中包含“didEndSelector:”的非沙盒兼容方法,并且 NSOpenPanel 现在在称为 "powerbox" (i.e. somewhere between your app and the OS; and not exactly either) 的单独事物中运行,因此 Apple 没有提供简单的方法在他们的沙盒环境中捕捉此时被点击的“确定”按钮。看起来你已经在你必须使用的东西上尽了最大的努力。
    • @MichaelDautermann 很酷。至少我在正确的轨道上那么:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    相关资源
    最近更新 更多