問題タブ [nspathcontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
445 参照

cocoa - 文字列にバインドされたときに NSPathControl がパーセント ('%') 文字をエスケープしないという事実はバグですか?

手順:

環境: OS X 10.6.4 Xcode 3.2.1

  1. 新しい「アプリケーション」プロジェクトを作成します。
  2. 提供されたアプリケーション デリゲートを開きます。
  3. プロパティを追加しNSString *ます。
  4. -applicationDidFinishLaunching:文字列プロパティを に設定します@"/TestString%"
  5. NIBを開きます。
  6. NSPathControlをアプリケーション ウィンドウにドラッグします。
  7. NSPathControlの値バインディングを手順 3 で作成したプロパティにバインドします。
  8. アプリケーションを実行する
  9. コンソールを表示します。

次のアサーションが表示され、パス コントロールは表示されません。

手順 4 で文字列からパーセント記号を削除すると、アサーションがなくなり、パス コントロールが正しく表示されます。

次の文字を試しましたが、いずれも同じ問題を引き起こしません (二重引用符とバックスラッシュを必ずエスケープしてください)。

いくつかのデバッグを行った後、これを追跡して、パーセントエスケープをサポートするこのメソッドにたどり着きました。たとえば、文字列を使用する@"/Test%20string"と、結果は「テスト文字列」と表示され、%20 が空白文字に変換されます。

この動作はどこにも文書化されていません。私はそれを見逃していますか?

-[NSBrowser path]でブラウザのパスをミラーリングするために使用していたため、この問題が発生しましたNSPathControl。選択したブラウザー セルの内容に % 記号が含まれていると、全体NSPathControlが失敗します (QA はそのようなものを見つけるのに最適です。彼らのおかげです)。

私の最善の推測は、文字列をNSURL内部的に変換しようとして失敗し、例外をトリガーする nil を返すことです。これは、文字列の先頭の / を省略すると、次のメッセージが表示されるという事実によって強化されます。

しかし、これにはまだ何かが欠けています。なぜなら-initWithScheme:host:path:、 は必要な直前のエスケープを追加するものとして文書化されており、呼び出すことができ-initWithScheme:host:path:、エスケープを追加するものとして文書化されていないメソッド (例: -initWithString) は、問題を引き起こさない文字、つまり:, /,のエスケープが必要であると文書化されているためです#;、および@

私はそれについて Apple にバグを報告する予定ですが、これをどこかに文書化し、最初に何かを見逃していないことを確認したかったのです。


解決策を探してこの質問を見つけた人にとって、私の解決策は、 NSPathControl にバインドされたプロパティのゲッターを手動で実装して、 and を使用してエスケープされた文字列を返すことでし-stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding


誰も何も意見を持っていなかったので、私は先に進んでこれをAppleに提出しました. rdar://8452431.

0 投票する
1 に答える
1534 参照

objective-c - NSPathControlで選択したファイルへのフルパスを取得する

ユーザーがハードディスク上のファイルを選択できるように、アプリにNSPathControlがあります。

使用しようとしています

ただし、これはファイル名のみを出力します。ファイルへのフルパスを取得するにはどうすればよいですか?

前もって感謝します!

0 投票する
1 に答える
637 参照

cocoa - ドロップダウンnspathcontrol

xcode 4のようにデフォルトのNSPathControlをドロップダウンさせる方法はありますか?デフォルトでは、サブクラス化しないことを意味します

代替テキスト

0 投票する
2 に答える
687 参照

objective-c - NSPathcontrol の代替

NSPathControl (カスタム ルック、項目のメニュー) をカスタマイズしようとしていますが、何時間も経過した後、目的を達成できません。パスを表す別のコントロールを知っていますか?

よろしくお願いいたします。

よろしく、

0 投票する
1 に答える
3484 参照

objective-c - URLを含むNSStringをPOSIXパスに変換します

NSPathControlファイルまたはフォルダーをドロップした後、フォルダーまたはファイルへのPOSIXパスを取得する作業を行っています。

私は初心者ですが、次のDestinationようにコードのコントロール(と呼ばれる)から値を取得することができました。

これは私に次のようなものを与えます

しかし、私はそれをPOSIXパス形式にしたいのです:

code>NSTask実行中のコマンドラインプログラムに渡す必要があるためです。

このコンテンツをNSStringURL形式からPOSIXパスに変換する方法について何か提案はありますか?

0 投票する
2 に答える
1504 参照

objective-c - NSPathControl を他のドロップダウン ボックスのように見せるにはどうすればよいですか?

と格闘していNSPathControlます。具体的には、ユーザーにタイトルとパスを尋ねるダイアログ (NIB によって生成されたもの) があります。パスは、ユーザーのハード ドライブ上のローカル パスである必要があります。そのため、Xcode 4 では、NSPathControl. 属性インスペクタで、そのスタイルを「ポップアップ」に設定しました。

これは私が期待するようにかなり機能します。クリックすると、いくつかの一般的なパスまたは現在の選択に関連するパスを含むメニューと、ダイアログ ボックスを開いてパスを選択できる [Choose...] オプションが表示されます。

問題は、境界線やボタンがまったくないため、Cocoa ドロップダウンのように見えないことです。どうすればこれを のように見せることができますNSPopUpButtonか。これはおそらく誰かが期待するものです。

あるいは、私は Cocoa を初めて使用するので、これについて間違った方向に進んでいると言われても構わないと思っています。私が間違った方法で行っている場合、ユーザーにパスを選択させるより良い方法は何ですか?

これが私がやろうとしていることの例です:

例

パスのドロップダウンが表示されますか? 私はそれがこれらのいずれかのように見えることを期待していたでしょう...

落ちる

...とはいえ、私は行儀の良い Cocoa アプリを作成しようとしているので、「これを行う正しい方法は何か?」ということが本当に必要です。前もって感謝します。

0 投票する
1 に答える
979 参照

objective-c - NSPathControl の問題

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

0 投票する
1 に答える
334 参照

objective-c - NSPathControl setDoubleAction が機能しない

NSPathControlアプリケーションのビューにを追加しました。ダブルawakeFromNibクリックアクションを設定します:-

残念ながら、PathControl のダブルクリックは機能しませんが、最初はこれを単純なスタンドアロン テスト アプリケーションとしてテストしました。

他の要素との相互作用があるのではないかと思います。特に、 aとaNSSplitViewを含む a があり、どちらもコントローラー内のセレクターを分離するための Double Click Target バインディングを持っています。NSOutlineViewNSTableView

これらが NSPathControl に影響する理由がわかりません。

セレクターを dClickPath:に接続するとNSPathControl、PathControl のクリックが機能します。

0 投票する
2 に答える
1089 参照

objective-c - パスの各コンポーネントのポップアップを含む NSPathControl?

Apple のサンプル コードとドキュメントを読むと、たとえばXcode エディタ ウィンドウの「ジャンプ バーNSPathControl」と同様に動作するように を構成する方法がわかりません。

Xcode エディターのカスタム パス コントロール

つまり、パス(または他の種類の階層)を表し、パスの各コンポーネントをクリックして階層をナビゲートするポップアップにします..?

NSPathControlDelegateクリック音を聞いて一時的なウィンドウにメニューを表示することで、そのような動作を偽造する幸運に恵まれた人はいますか?

OSSの実装が期待される一般的な設計のようですが、そのような運はまだありません..

0 投票する
1 に答える
150 参照

ios - iOS に相当する NSPathControl

NSPathControl が OSX で行うように動作する iOS (iPhone/iPad) 上のコントロールはありますか? (イベントのルートにノードを動的に追加するには、戻ることができ、イベントのノードを削除します...)