アトトックラボ

2010年12月29日

NSAlertでアラートシートを表示

Posted by Yoichi Kurusaki

ウィンドウのタイトルバーの下に表示されるアラートシートを表示するには、NSAlertの下記のメソッドを使用する。

- (void)beginSheetModalForWindow:(NSWindow *)window 
    modalDelegate:(id)modalDelegate 
    didEndSelector:(SEL)alertDidEndSelector 
    contextInfo:(void *)contextInfo


アラートシートの表示とボタン押下時の処理
// 「アラートシートを表示」ボタンのアクション
-(IBAction)dialogSeetAction:(id)sender
{
	
    NSAlert *alert = [ NSAlert alertWithMessageText : @""
        defaultButton : @"OK"
        alternateButton : @"Cancel"
        otherButton : @"Other"
        informativeTextWithFormat : @"Message %@ %d",@"HogeHoge",1];
	
	
        [alert beginSheetModalForWindow:self.window 
            modalDelegate:self 
            didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) 
            contextInfo:nil];
	
}
// アラートのボタン押下時に呼び出される
- (void) alertDidEnd:(NSAlert *)alert 
    returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
{
        if(returnCode == NSAlertDefaultReturn) {
                NSLog(@"NSAlertDefaultReturn");
        }
        else if(returnCode == NSAlertAlternateReturn) {
                NSLog(@"NSAlertAlternateReturn");
        }
        else if(returnCode == NSAlertOtherReturn) {
                NSLog(@"NSAlertOtherReturn");
        }
        else if(returnCode == NSAlertErrorReturn) {
                NSLog(@"NSAlertErrorReturn");
        }
}


アラートシートのスクリーンショット

上記のコードで表示したアラートシートがこれ

20101229005000.png