0

NSAlert情報メッセージの下のテキスト ブロックにリンクを表示できるように、アクセサリ ビューを表示しようとしています。これが私のコードです。

#import "AppDelegate.h"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSAlert *activateAlert = [NSAlert alertWithMessageText: @"Some message text"
                                         defaultButton: @"OK"
                                       alternateButton: nil
                                           otherButton: nil
                             informativeTextWithFormat: @"Some informative text"];

    NSTextView *accessory = [[NSTextView alloc] initWithFrame: NSMakeRect(0,0,300,15)];
    NSFont *font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
    NSDictionary *textAttributes = @{NSFontAttributeName: font};
    [accessory insertText:[[NSAttributedString alloc] initWithString:@"Some text in an accessory view"
                                                      attributes: textAttributes]];
    accessory.editable = NO;
    accessory.drawsBackground = NO;
    [accessory setAutomaticLinkDetectionEnabled: YES];

    activateAlert.accessoryView = accessory;

    [activateAlert beginSheetModalForWindow: self.window
                              modalDelegate: nil
                             didEndSelector: nil
                                contextInfo: nil];
}

@end

Appleのドキュメントには「情報テキスト (小さいシステム フォントを使用)」と記載されているため、使用[NSFont smallSystemFontSize]していますが、正しくレンダリングされません (を参照)。

  • 揃っていない
  • 小さなフォントサイズを使用していません(1.0などの他の値を使用してみました)が、フォント属性が無視されているようです。

ヒントはありますか?NSAlert独自のコンポーネントを作成する必要がありますか?

ありがとう!

4

1 に答える 1

1

textView の IBOutlet を作成し、それを NSAlert のアクセサリ ビューとして使用してみましたか?

于 2013-02-15T09:31:50.527 に答える