アクセサリ ビューと 3 つのボタンを備えた NSAlert があります。ボタンは右揃えではありませんが (LTR システムの場合)、以下に示すようにアクセサリ ビューの幅に拡大するようです。
また、アクセサリ ビューを削除すると、3 つのボタンが右側に正しく配置されません
この問題を解決するにはどうすればよいですか? 自分でコードを書いて NSAlert を置き換えたくないのですが、なぜ車輪を再発明しなければならないのでしょうか?
私が使用するコードはsetAccessoryViewのドキュメントによってコピーされ、以下に報告されています
NSTextView *accessory = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,600,15)];
NSFont *font = [NSFont systemFontOfSize:[NSFont systemFontSize]];
NSDictionary *textAttributes = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
[accessory insertText:[[NSAttributedString alloc] initWithString:@"Text in accessory view"
attributes:textAttributes]];
[accessory setEditable:NO];
[accessory setDrawsBackground:NO];
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"Message text"];
[alert setInformativeText:@"Informative text"];
[alert setAccessoryView:accessory];
[alert addButtonWithTitle:@"Btn 3"];
[alert addButtonWithTitle:@"Btn 2"];
[alert addButtonWithTitle:@"Btn 1"];
[alert runModal];
[alert release];