問題タブ [ikimagebrowserview]
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.
cocoa - IKImageBrowserView にプリロードをスケジュールしないように指示する
オープンソースの iMedia フレームワーク プロジェクト (現在、数十人の開発者が使用中) を書き直すために、IKImageBrowserView に切り替えており、キャッシングに悩まされています。
IKImageBrowserView は、優先度の低いバックグラウンド タスクとして、まだ表示されていないアイテムをできるだけ多くプリロード/プリフェッチすることを好むようです。これは役に立つかもしれませんが、できることなら CPU (およびリモートで取得した画像のネットワーク) に負荷をかけたくないという点を除きます。
特に、独自の FIFO キャッシュ メカニズムがあるため (サムネイル データを他のビューと同じデータで共有できるため)、キャッシュが容量いっぱいになり、古いアイテムがダンプされるだけです。
このプリローダーのスケジューリングを無効にする方法はありますか? (今のところ慎重に使用できる文書化されていない API があるとしても、この危険な機能をオフにできることが非常に重要であるため、それをパブリック API にするリクエストを開くことは確実です。)
これは実際に多くのアプリケーションに影響を与えます。あなたが提案できる回避策は非常に高く評価されます。
ところで、関連する議論: http://lists.apple.com/archives/cocoa-dev/2007/Nov/msg02011.html
cocoa - トラックパッドのピンチ ジェスチャを解釈して IKImageBrowserView をズームする方法
最近IKImageBrowserView
のMacラップトップでマルチタッチトラックパッドを使用してピンチズームできるようにしたいです。
Cocoa Event Handling Guide の「Handling Gesture Events 」セクションには、次のように記載されています。
倍率アクセサー メソッドは、倍率を表す浮動小数点 (CGFloat) 値を返します。
..さらに、高さと幅に を掛けてビューのサイズを調整するコードを示しますmagnification + 1.0
。
IKImageBrowserView
これは、zoomValue
プロパティが 0.0 と 1.0 の間に固定されているzooming の正しいアプローチではないようです。
-[NSResponder magnifyWithEvent:]
では、イベントをズームに解釈する方法を知っている人はいIKImageBrowserView
ますか?
cocoa - Cocoa でユーザー選択用のサムネイル ベースのビューを実装するにはどうすればよいですか?
私は非常に単純なニーズだと思っていましたが、それを実装する方法がわかりません。
インターフェイスのさまざまなポイントで、ユーザーはかなり視覚的なものを選択するように求められます (ページのレイアウトや色のオプションを選択するなど)。これらの選択は、事前に定義された一連のオプションから行われます。通常は NSPopUpButton または NSTableView を使用しますが、各選択オプションのサムネイルをユーザーに表示してもらいたいと思います。これらのサムネイルも適切なサイズである必要があります (少なくとも 100x100 ピクセル)。各サムネイルには、テキスト ラベルも付ける必要があります。一度に選択できるのは 1 つだけです。
Apple は、iWeb で次のようなものを実装しています。
iweb http://img187.imageshack.us/img187/5744/iweb.jpg
もちろん、小さなアイコンで次のようなものを見たことがあるでしょう:
私は NSCollectionView が出発点であると考えていますが、これがはるかに複雑なシナリオで使用されているのを見たことがありません (例: ディレクトリの内容を表示する、ドラッグ アンド ドロップをサポートするなど)。私が見つけたコードはかなり複雑です。
このビューに事前定義された静的データを入力し、単純な選択を可能にする簡単なソリューションはありますか? つまり、ポップアップ ボタンの機能を探していますが、別のユーザー インターフェイスを探しています。
更新: 解決策
提案どおり、IKImageBrowser を使用しました。このチュートリアルはとても役に立ちました。IB: インターフェースで IKImageBrowser を作成し、それをスクロール ビューでラップして、ブラウザ オブジェクトのデータ ソースにしました。コード: チュートリアルで説明されているようにコントローラーにデータ ソース プロトコルを実装し、allowsMultipleSelection と allowEmptySelection を NO に設定し、チュートリアルで説明されているとおりに URL 画像表現を使用してカスタム画像オブジェクトを作成しました。
次に、選択を取得するために、ユーザーが「OK」ボタンをクリックしたときにトリガーされる次のメソッドを作成しました。
チュートリアルは非常に役に立ちます。画像の追加やズーム スライダーなどについては無視してください。
objective-c - バインドされたプロパティが設定されているときに NSUserDefaultsController が機能しないことを確認する
セットアップは次のとおりです。プロパティがsharedzoomValue
のキーにバインドされているIKImageBrowserView のサブクラスがあります。バインディングが同じキーにバインドされている があります。VFBrowserZoomValue
NSUserDefaultsController
NSSlider
value
zoomValue
これは、ブラウザのスライダーからの変更に完全に機能します。
-magnifyWithEvent:
サブクラスに実装して、IKImageBrowserView
トラックパッドのピンチ ジェスチャでブラウザをズームできるようにしようとしています。
これが私の実装です:
これにより、ブラウザがzoomValue
正しく変更されます。問題は、NSUserDefaults
が新しい値で更新されないことです。
アプリの他の場所には-observeValueForKeyPath:ofObject:change:context:
、ブラウザの を監視する の実装がありzoomValue
ます。ブラウザーのズームの値、スライダーの値、およびそのメソッドのデフォルトのキーをログに記録すると、ブラウザーの zoomValue が NSUserDefaults にプッシュされておらず、スライダーが更新されていないことがわかります。
私は効果のない-magnifyWithEvent:
呼び出しでメソッドを囲みました。-{will,did}ChangeValueForKey
cocoa - IKImageBrowserView のドラッグ アンド ドロップ動作を削除する
デフォルトでは (どうやら)、IKImageBrowserView は Finder 内の場所へのドラッグ アンド ドロップを有効にします。この動作をオフにしたいのですが、その方法がわかりません。おそらく NSDraggingDestination プロトコルを実装してオーバーライドすることでこれを解決できると考えていましたが、これまでのところうまくいきませんでした。
助けてくれてありがとう!
objective-c - IKImageBrowserViewが正しくバインドされていないようです
私の質問は、InterfaceBuilderとIKImageBrowserViewが期待どおりにバインディングを実装していないことに関連しています。
NSArrayControllerに到達するためのかなり長いキーパスがあり、その内容をIKImageBrowserViewに表示します。
これは、NSTextFieldの表示パターンバインディングをAppDelegateの:
currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@count
にバインドしているキーパスです。これは正常に機能し、現在の注文に属する画像の配列内の未検証のアイテムの数を取得します。これは、想定されていることです。
次のキーパスをAppDelegateのIKImageBrowserViewにバインドしようとするとcontent
、currentOrder.imagesArray.unvalidatedImages.arrangedObjects
Interface Builderはエラーを表示しませんが、代わりに何も入力していないかのように動作します。インスペクターに戻ると、バインディングキーパスが再び空白になります。
ただし、以下はコンソールに記録されます。
Ignoring exception related to working with bindings: NSUnknownKeyException, [<NSCustomObject> addObserver:<IKImageBrowserView ...> forKeyPath:@"currentOrder.imagesArray.unvalidatedImages.arrangedObjects" ...] was sent to an object that is not KVC-compliant for the "currentOrder" property.
私のAppDelegatecurrentOrder
は、保持された@propertyとして実装され、すべてのサブキーも@propertiesです。上記のNSTextFieldは問題なく変更を読み取ることができるため、これらのプロパティはKVCであると確信できます。興味深いことに、IKImageBrowserViewはにselectionIndexes
バインドできますが、バインドできない...unvalidatedImages.selectionIndexes
のはそれだけcontent
です。
NSArrayControllerをnibファイルに配置し、Content Arrayを...arrangedObjects
バインドして、IKImageBrowserViewを配列コントローラーにバインドするという回避策を実装しましたが、より適切なソリューションがあれば、または少なくとも何かをしているのかどうかを知ることができれば幸いです。間違い。
ありがとうございました!
objective-c - IKImageBrowserView のサムネイルの問題
Apple公式サイトから「IKImageKit Demo」という名前のIKImageBrowserViewサンプルをダウンロードします。
しかし、私は問題を見つけました。
例えば:
「A」という名前のフォルダーから画像をインポートすると、画像が削除されます。
次に、他の画像(削除された画像と同じ名前)、サムネイルをインポートします
IKImageBrowser は変更されません。
どうすればこの問題を解決できますか?? ありがとう!
cocoa - Cocoa: IKImageBrowserView の背景を透明にするにはどうすればよいですか?
IKImageBrowserView の背景を透明にするにはどうすればよいですか? インターフェイスビルダーには背景色のオプションがないようです。
私が試したこと:
Core Animation を使用したことはありませんが、IKImageBrowserView に setBackgroundLayer メソッドがあることがわかったので、次のことを試してみましたが、効果はありませんでした。
IKImageBrowserViewのクラス リファレンスは次のとおりです。
cocoa - ガベージ コレクションがオンになっている IKImageBrowserView アイテムにフォアグラウンド レイヤーを追加すると、CALayer がちらつく
Apple の ImageBrowserViewAppearance サンプル コード (ここにあります: http://developer.apple.com/library/mac/#samplecode/ImageBrowserViewAppearance/Introduction/Intro.html ) にあるものと同様の手法を実装しようとしています。 CALayer は、IKImageBrowserView 内の項目の上に生成され、画像ブラウザー内のオブジェクトの外観をカスタマイズします。
しかし、ガベージ コレクションをオンにすると奇妙な問題が発生し、Apple サンプル コードで再現できます。ターゲットでガベージ コレクションをオンにし、ImageBrowserAppearance サンプル アプリをビルドして起動するだけです。次に、[写真を追加...] ボタンを使用して画像ブラウザに写真を追加します。
ここで、IKImageBrowserView の空の部分をクリックし、クリック アンド ドラッグして、ブラウザー ビューで複数の項目の選択を開始します。選択ボックスをドラッグすると、一部の項目のピンと光沢のオーバーレイがちらつき、IKImageBrowserView の左下隅に一時的に表示されることがあります。すべての CALayer は時折これを行うようです。白い周囲のスライド エリアが左下隅にちらつきます。
この手法を自分のコードで模倣すると、(驚くことではありませんが) このバッジのちらつきも再現できます。ただし、ガベージ コレクションをオフにすると、この問題はなくなります。
ここで何がうまくいかないのか、誰にも手がかりがありますか? この手法と組み合わせてアプリでガベージ コレクションを使用したいのですが、ちらつきが気になります。
ikimagebrowserview - IKImageBrowserView と ImageTitle
写真でいっぱいのフォルダーを正しく表示するimagebrowserviewがありますが、各写真の画像タイトルが表示されません...
これがどのように機能するかを示すチュートリアルはありますか?
よろしく
AGW