2011-12-05 3 views
0

設定を保存したときにユーザーからのフィードバックを得る方法を見つけようとしています。 Microsoftの「File Saved」ダイアログに似ていますこのタイプのダイアログのクラスはありますか?私はユーザーが何らかのアクションを要求したくない。ちょうど「あなたの設定は保存されました」と表示されてから少し遅れて消えます。おそらくより良い記述方法は、フェードアウトタイプのものをフェードインしたjQueryメッセージボックスのようなものでしょう。アクションが必要なメッセージ

+1

それは私にとってひどい考えのように聞こえる。ユーザーが実際にそれを読む必要がある場合を除き、テキストを表示しないでください。また、重要なテキストが表示されない限り、テキストを表示しないでください(数分または数時間かかる場合があります。アップ?)。保存操作に100分の1秒以上かかる場合は、何らかの進行状況インジケータを表示する必要があります。終了したら、進行状況インジケータを非表示にする必要があります。それが終わったのです。マイクロソフトのアイデアを最初に考えずにコピーしないでください。悪い選択をする歴史があります。 –

+0

ありがとうございます。私はテキストを削除し、NSTimerを使って1秒間スピン・プログレス・メーターをアニメートし、とてもプロフェッショナルに見えます。カスタムツールが保存する設定は約4〜5つ(非常に速い)ですが、ユーザーのフィードバックを与える方法はまだ必要でした。私はこれが最善の策だと思う。ありがとうございました – Miek

答えて

0

あなた自身でそのようなポップアップを作成できます(必要に応じてNSTimerを使用して)既存のサードパーティライブラリ(http://code.google.com/p/toast-notifications-ios/)。このライブラリは、Androidの「トースト」機能をエミュレートします。

このライブラリはiOS開発用(OSXではありません)ですが、対象とするプラットフォームがわからないことに注意してください。それにもかかわらず、それは少しの作業で適応可能でなければならない。

+0

"Cocoa"は "Cocoa Touch"とは対照的にOS Xを意味します。 –

+0

情報ありがとうございます。私はOSXで働いています – Miek

+0

上記のJoshの提案はApple Human Interface Guidelinesの逸脱からあなたを守りますが、もしこのルートを行き過ごしてしまったら、これにGrowl通知を使うことを検討したいかもしれません。上記のエリア通知)。 –

2

このタイプのダイアログにはクラスがありますか?

これは、ユーザーからの入力を受け付けていないため、「ダイアログ」ではありません。

避け、単に与える警告を使用して:最高で、それは警戒だ、とあなたはそのためNSAlertを使用することができますが、何を考えていることは"Alerts"ためHIGに与えられた勧告に反している(また"Dialogs and Special Panels"を参照してください)ユーザー情報データ損失の可能性などの重大な問題についてユーザーに伝えることは重要ですが、有益ではあるが実行可能ではないアラートによってユーザーが中断されることはありません。通知するアラートを表示する代わりに、変更されたステータスインジケータなど、別の方法でユーザーに情報を提供します。

言い換えれば、これはOS Xを使用している人口では良いユーザーエクスペリエンスとは考えられません。

絶対に必要な場合は、シートまたはアラートウィンドウを作成し、タイマーを設定して終了させることができます。

この情報をテキストで表示できるインターフェイスのどこかに、適切な期間の経過後に通知をクリアするためのタイマーを使用してラベルを付けることをお勧めします。

さらに別のオプション(おそらく最高)は、この通知をユーザーが要求に応じて見ることのできるところに置くことです。 HIGは、たとえば、サイドバーの下部にあるMail.appの情報領域について言及しています。

+0

はい、あなたは正しいです。私はおそらく、説明を選ぶのにちょっと注意をはらっていたはずです。私はHIGも見直しました。アラートが多すぎます。私はちょうど微妙な小さなjQueryのようなボックスをユーザに設定が保存されたことを伝える必要があります。私はtextFieldをNSTimerを使ってクールな背景色で表示させるつもりです。ありがとう – Miek

1

中とNSViewAnimationを使用して、ウィンドウをフェードすることは簡単でも、NSAnimation Class

私はこのようなものを使用する例を参照してください。

- (void)fadeWindowIn{ 

    //--make sure the window starts from 0 alpha. Or you may get it jumping in view then try and fade in. 
    [theWindow setAlphaValue:0.0]; 



    //-- set up the dictionary for the animation options 
    NSDictionary *dictIn = [NSDictionary dictionaryWithObjectsAndKeys: 
          theWindow,NSViewAnimationTargetKey, 
          NSViewAnimationFadeInEffect,NSViewAnimationEffectKey,nil]; 

    NSViewAnimation * fadeWindowIntAnim = [[[NSViewAnimation alloc] initWithViewAnimations:[NSArray arrayWithObject:dictIn]] autorelease]; 

    [fadeWindowIntAnim setAnimationCurve:NSAnimationLinear]; 
    [fadeWindowIntAnim setDuration:2]; 
    [fadeWindowIntAnim setFrameRate:20.0]; 


    //--start the animation 
    [fadeWindowIntAnim startAnimation]; 
    //--set the timer for the fade out animation 
    [NSTimer scheduledTimerWithTimeInterval:4.8 target:self selector:@selector(fadeWindowOut) userInfo:nil repeats:NO]; 

} 



-(void)fadeWindowOut{ 
    //-- fade the window. 
    NSDictionary *dictOut = [NSDictionary dictionaryWithObjectsAndKeys: 
          theWindow,NSViewAnimationTargetKey, 
          NSViewAnimationFadeOutEffect,NSViewAnimationEffectKey,nil]; 

    NSViewAnimation * fadeOutAnim = [[[NSViewAnimation alloc] initWithViewAnimations:[NSArray arrayWithObject:dictOut]] autorelease]; 

    [fadeOutAnim setAnimationCurve:NSAnimationLinear]; 
    [fadeOutAnim setDuration:1.2]; 
    [fadeOutAnim setFrameRate:20.0]; 

    [fadeOutAnim startAnimation]; 

} 

theWindowを使用すると、フェードインとフェードアウトしたいNSWindowのか、NSViewのです。参照を読んでオプションを理解してください。

+0

ありがとう。私はある時点でこれを使用すると確信しています – Miek

0

タイマーなどのその他の回答は、その側面をかなりよくカバーしています。私はちょうど入り込んで、Growlフレームワークを見てみることを提案しました。これはAppleがOSに組み込むまでこのような受動的な通知を行うのに好ましい方法だと思われる。

特に、通知の表示方法、画面上のどこに住んでいるか、滞在時間、どのアプリケーションで表示することさえできるか、ユーザーに多くの制御を与えます。そして、あなたはコードを書かなくてもこれを行います。欠点は、ユーザーがインストールする必要があることが別のものであることです。これは、アプリのディール・ブレイカーになる可能性があります。

最近App Storeに入ってわずかな料金($ 2または$ 3)の課金が始まった。これは欠点と見なすことができたが、私はそれをよりポジティブなものと考える。今すぐインストールしてください。

Growl通知を利用するアプリには、BBEdit、Transmission、Scrivener、Twitterifficなどがあります。これは、フライバイナイトのものではないということです。

ユーザーは、Growlで手に入れたすべてのコントロールを失うため、アプリが自分の通知を表示しようとすると嫌いです。

とにかく考えました。

関連する問題