2

cocoa で開発しているアプリケーションがあり、NSPathControl.

コントロールのスタイルを に設定しPopup、アプリを起動してパス コントロールをクリックすると、設定した URL のコンポーネントを含むポップアップ メニューが表示されます。つまり、次のような URL の場合、次のようにfile://localhost/Applications/Games/表示されます: My Macbook, Macintosh HD, .ApplicationsGames

ここで、 をクリックするとApplications、アクションを受け取り、そのアクション[[sender clickedPathComponentCell] URL]が正しい URL: を返しますfile://localhost/Applications/

問題 1: しかし、 をクリックするとMacintosh HD、末尾に 2 つのスラッシュがある URL が表示されます: file://localhost//

問題 2:アイテムfile://localhost//をクリックしたときに同じ URLが表示されることです。My Macbookだから、私は2つの質問があります:

  1. Macintosh HDURLが二重スラッシュで終わるのはなぜですか?

  2. Macintosh HDとのクリックを区別するにはどうすればよいですか? また、Finder がマウントされたボリュームのリストを表示するMy Macbookへの正しい URL は何ですかMy Macbook(私の macbook では とMacintosh HDですBOOTCAMP)。

「SourceView」というチュートリアルを調べたのですが、 のような項目がなく、が本当に何らかの仮想フォルダとして存在するのか、マウントされているの一覧を取得するために使用するだけなのMy Macbookかわかりませんでした。ボリューム。My MacbookNSFileManager

4

1 に答える 1

1

問題#1:

URL はfile://localhost//、ブート ボリュームへのパスが であるためです/。少し奇妙ですが、file://localhost/(単一のスラッシュ) は「パスのない localhost 上のファイル」を意味するため、file://localhost//(二重のスラッシュ) は「localhost 上の path のファイル」を意味します/

取得している URL の偏心について実際に心配する必要はありません。それを必要とするものに渡すだけで、問題なく処理されるはずです。

問題#2:

「My MacBook」は実際には存在しません。これは、接続されているボリューム/Networkなどのリストを表示する仮想フォルダーです。存在しないため有効なパスがありません。代わりに、ブートへのパスを取得します。代わりにボリューム。

于 2012-05-22T17:30:35.970 に答える