私はこれを使ってみました:
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
どうしたの?のキャンセル ボタンのタイトルを変更するにはどうすればよいNSOpenPanel
ですか? サンプルコードをいただければ幸いです。