5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac OS Xアプリでモーダルダイアログボックスを表示する

Last updated at Posted at 2014-08-25

今どきのアプリではモーダルダイアログボックスはなるべく使わない傾向にあるようですが、とりあえず実装が簡単なモーダルダイアログボックスで作っておき、後からより気の利いたユーザーインターフェースに差し替えようという場合もあるのではないでしょうか。

	// Objective-Cの場合
    NSAlert *alert = [[NSAlert alloc] init];
    [alert setMessageText:@"入力エラー"];
    // ARCを使ってない場合は [alert release];
	// Swiftの場合
    let alert = NSAlert()
    alert.messageText = "入力エラー"
    alert.runModal()

結果
結果スクリーンショット

##メッセージの詳細などを付け加える

メッセージの詳細などを付け加える場合はsetInformativeText:を使います。

	// Objective-Cの場合
   NSAlert *alert = [[NSAlert alloc] init];
   [alert setMessageText:@"入力エラー"];
   [alert setInformativeText:@"名前を入力してください"];
   [alert runModal];
   // ARCを使ってない場合は [alert release];
	// Swiftの場合
    let alert = NSAlert()
    alert.messageText = "入力エラー"
    alert.informativeText = "名前を入力してください"
    alert.runModal()

結果
結果スクリーンショット

##ボタンのラベルを変える

ボタンのラベルを変えたい場合はaddButtonWithTitle:を使います。

	// Objective-Cの場合
   NSAlert *alert = [[NSAlert alloc] init];
   [alert setMessageText:@"入力エラー"];
   [alert setInformativeText:@"名前を入力してください"];
   [alert addButtonWithTitle:@"わかりました"];
   [alert runModal];
   // ARCを使ってない場合は [alert release];
	// Swiftの場合
    let alert = NSAlert()
    alert.messageText = "入力エラー"
    alert.informativeText = "名前を入力してください"
    alert.addButtonWithTitle("わかりました")
    alert.runModal()

結果
結果スクリーンショット

ボタンの数が変わるわけでもないのにaddButtonWithTitle:を使うというのが少しわかりにくいですね。

##続き

まだまだいろいろありますがこのくらいにしておきます。詳しくはNSAlert Class Referenceをどうぞ。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?