我试过用这个:
1)创建NSOpenPanelExtension.h
包含以下内容的文件:
#import <Cocoa/Cocoa.h>
@interface NSOpenPanel (Extension)
- (void)setCancelButtonTitle:(NSString *)newTitle;
@end
2)创建NSOpenPanelExtension.m
包含以下内容的文件:
#import "NSOpenPanelExtension.h"
@implementation NSOpenPanel (Extension)
- (void)setCancelButtonTitle:(NSString *)newTitle
{
NSRect oldFrame = [_cancelButton frame];
[_cancelButton setTitle:newTitle];
[_cancelButton sizeToFit];
NSRect newFrame = [_cancelButton frame];
float delta = oldFrame.size.width - newFrame.size.width;
[_cancelButton setFrameOrigin:NSMakePoint(oldFrame.origin.x + delta,
oldFrame.origin.y)];
}
@end
3)在需要的地方使用它:
#import "NSOpenPanelExtension.h"
...
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setCancelButtonTitle:@"NO!"];
但是当[panel setCancelButtonTitle:@"NO!"]
我NSOpenPanel
崩溃并且这出现在我的控制台上时(以及通常的错误和代码):
*** Assertion failure in -[NSRemoteOpenPanel forwardingTargetForSelector:], /SourceCache/RemoteViewServices/RemoteViewServices-80.5/NSRemoteSavePanel.m:1975
An uncaught exception was raised
sandboxed save/open panel presently acting unlike a panel
怎么了?如何更改 a 的取消按钮标题NSOpenPanel
?示例代码将不胜感激!