2010-12-04 15 views
0

NSWindowを持たないステータスアイテムアプリを作成しています。ユーザーがステータス項目をクリックすると、NSOpenPanelをプルアップします。アプリがNSWindowを利用していない場合、どうすればいいですか?NSStatusItemアプリケーションでNSOpenPanelを表示

ありがとうございました。

答えて

3

シートとしてではなく、モーダルウィンドウとして実行します。 completionHandler:あなたが、その後NSOpenPanelのbeginSheetModalForWindowにそのウィンドウを渡すことができ

window = [[NSApp currentEvent] window]; 

:シートとしてオープンパネルを表示するために、自分のステータス項目のIBActionメソッドで

+0

パーフェクト、それは私がまさに必要です。 – David

1

、これを呼び出します。

シートが表示されているときにステータス項目自体がひっくり返って消えますが、シートを閉じるとステータス項目が再び表示されることがあります。あなたは単にNSMenuItemの行動から開いているパネルを呼び出すことができます

0

NSOpenPanel *panel = [NSOpenPanel openPanel]; 
    [panel setAllowsMultipleSelection:YES]; 
    [panel setCanChooseDirectories:YES]; 

    NSUInteger result = [panel runModal]; 
    NSMutableArray *paths = [NSMutableArray array]; 

    if(result == NSFileHandlingPanelOKButton) { 
     for (NSURL *url in [panel URLs]) { 
      NSLog(@"%@", url); 
     } 
    } 
関連する問題