問題タブ [nspredicateeditor]
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.
objective-c - NSPredicateEditor の UI 規約
NSPredicateEditor の最低限のサンプル/チュートリアルの実装を認識しています。
http://developer.apple.com/library/mac/#samplecode/PredicateEditorSample/Introduction/Intro.html
実際のアプリケーションで NSPredicateEditors に似た UI を私が見た唯一の場所は、iTunes のスマート プレイリスト フォームと Aperture の写真フィルター フォームです。次の規則について興味があります。
- テーブル ビューに関連する NSPredicateEditor の配置。
- NSPredicateEditor を表示または非表示にする UI。
- 述語を適用するためのボタン (存在する場合)。
実際のアプリケーションでの NSPredicateEditor の効果的な実装の他の例は何ですか?
cocoa - Spotlight メタデータ クエリ用に NSPredicateEditor(RowTemplate) を構成するI'
NSPredicateEditor
の述語を編集するように (Interface Builder で) を構成しようとしていますNSMetadataQuery
。
最初のステップとして、NSPredicateEditorRowTemplate
単一の keyPath ( kMDItemTextContent
) を開始しようとして、左側の式のキー パスを受け入れるように を構成しようとしています。
すべてのピースを IB に入れる方法がわかりません。行テンプレートを選択し、IB Attributes Inspector で「Left Exprs」を「Key Paths」に設定しました。しかし、Apple の PhotoSearch の例をモデルとして使用すると、ユーザーが読み取り可能な属性名 (「コンテンツ」など) をここに入力する必要があるようです。それを " " にバインドする方法がわかりませんkMDItemTextContent
。
PhotoSearch(*) で (正しく構成された) NIB を分析したところ、その中に/NSKeyPathExpression
に付加されたメタデータ属性の指定があります。NSPopUpButton
NSPopUpButtonCell
を見つけるために IB でナビゲートする場所がわかりNSPopUpButton
ません。また、それをNSExpression
.
どんな助けでも感謝します。
(*) ご参考までに、NIB を XIB に変換して、NIB が正しくビルドされることを確認し、BBEdit で調べてみました。
objective-c - NSPredicateEditor/NSRuleEditor 行の個別の行テンプレート
NSPredicateEditor (または、必要に応じて NSRuleEditor) の特定の行に異なる行テンプレートを使用できるかどうかを調べようとしています。これをより明確に説明するのに役立つと思われるスクリーンショットがあります。
この不自然な例では、特定のサイズを超える特定のパスを探すフィルターを生成してもらいたいだけです。したがって、セクション A (Any ブロック) では、ユーザーはパスの規則のみを指定できます (さらに、ユーザーはパスを追加できます)。セクション B では、サイズ オプションのみを使用できるようにします。
ドキュメントからは何も飛び出していません (または、飛び出してきたものが別のものになってしまいます) が、これは便利な機能のように思えます。 .
objective-c - NSPredicateEditor を共有ユーザー デフォルト コントローラーにバインドする
私が作成しているツールの設定パネルの一部である NSPredicateEditor があります。
NSUserDefaults オブジェクトの他のアイテムと同じようにユーザーの選択を保存したいのですが、Binding を NSPredicateEditor オブジェクトに追加してツールを実行すると、データが保持されず、さらに他のデフォルトが表示されなくなります. バインディングを取り除いて再コンパイルすると、他のすべてが元に戻ります。
NSPredicatedEditor データをユーザー設定として保存する最良の方法は何ですか?
ありがとう。
objective-c - Xcode 4 の NSPredicateEditor
Xcode 4 の述語エディター コントロールに少し問題があります - 私はすべてを正しく行っていると思いますが、IDE 自体が壊れているようです。
私が書いているアプリでこの問題が発生していますが、それを特定するために、次のことを行いました。
ウィンドウで新しいプロジェクトを作成します。XIB エディターで、それに NSPredicateEditor を追加し、1 行追加します。キーパス/文字列のままにして、「タイトル」と「ライター」の 2 つのキーパスを追加します。大文字と小文字を区別しないようにします。
NSWindowController のサブクラスを作成し、述語エディター用の IBOutlet を追加します。
awakeFromNib に、次のコードを追加します。
NSPredicate *myPredicate = [NSPredicate predicateWithFormat: @"(title CONTAINS[CD] %@) AND (writer CONTAINS[CD] %@)", @"", @""];
[_predicateEditor setObjectValue:myPredicate];
これにより、コンソールに次のように表示されます。
2011-04-12 15:59:37.709 PredicateTest[38419:903] 警告 - テンプレートに一致する述語タイトルが見つかりません CONTAINS[cd] ""
2011-04-12 15:59:37.710 PredicateTest[38419:903] 警告 - テンプレートに一致する述語ライターが見つかりません [cd] ""
(+) ボタンをクリックして新しい行を追加すると、次のようになります。
2011-04-12 15:59:40.044 PredicateTest[38419:903] nil 演算子または式で比較述語を作成できません。
ここで何も悪いことをしていないと思うのは正しいですか、これはうまくいくはずですか? 述語エディターの行テンプレートをキー パスから変更してからキー パスに戻し、キー パスのリストを編集すると、Xcode が内部整合性例外でクラッシュします。述語編集になります。
誰でもアイデアはありますか?私は XIB エディタではなくコードで NSPredicateEditor を作成しようとしましたが、無駄に終わりませんでした。アプリをストアにリリースするのを妨げているのは述語編集機能だけなので、これはちょっと面倒です。
objective-c - NSPredicateEditorRowTemplate、キーパスをスペースで指定?
以前の質問によると、私はしぶしぶ IB/Xcode4 を使用して NSPredicateEditor を編集することをあきらめ、純粋にコードでそれを行いました。
GUI でフィールドを編集する方法では、「フィールド名」のようにキー パスをスペースで指定できます。これにより、「フィールド名」スタイルのキー パスとして機能し、UI ではスペースを使用して表示されます。コードでこれを行うにはどうすればよいですか? スペースで指定すると機能しません。キャメルケースで指定すると機能しますが、キャメルケースで表示されます。私はちょうどこのような NSExpressions の束を追加しています:
cocoa - NSPredicateEditor による複合行の表示の強制
私はコードで NSPredicateEditor を作成しており、かなり単純な作業になると思っていたものを達成しようとしています。基本的に、私は複合 NSPredicateEditorRowTemplate (「次のすべて/いずれか/どれも真ではない」場合に一致を実行するオプションをユーザーに与える) と、その下にいくつかのかなり基本的なサブ行を表示したいと考えています。これを行うには、NSPredicateEditor を構築し、その値をバインドして、ユーザーが述語を編集したときに変更を保存します。
私が経験している問題は、何があっても、複合 NSPredicateEditorRowTemplate をデフォルトで単一のサブ行を持つ親行として表示できないことです。最初に述語を作成するとき、次のように偽の空の述語を渡します。
複合行を強制的に表示するには、2 つのサブ行を作成する必要があります。
参考までに、NSPredicateEditor の作成方法を次に示します。
ios - xCode 4 の述語エディターで変数を追加する
新しい xCode4 のエディターで、変数を使用してフェッチ結果を追加する方法が見つからないようです...あらゆる場所を調べました...すべての右クリック、メニュー項目、すべて...
誰でもこれを行う方法を知っていますか?
objective-c - NSPredicate を使用して文字列を分析する
こんにちは!この質問はかなり長いので、必ず最初に座ってください :)
コードのある時点で、ユーザーから文字列を取得し、その文字列を分析します。分析とは、すべての文字を調べて、ユーザーが NSPredicateEditor で設定した述語と照合することを意味します。述語は、次のようにプログラム的に設定されます。
3 つのキーパスと、それらを比較できるいくつかの定数があることがわかります。文字列を分析するとき、私は基本的に疑似コードでこれを行いたい:
私の問題が基本的にどこにあるかを見ることができます:
「文字の前/後」は、スペースのためにキーパスにすることはできませんが、ユーザーにとってより美しいので、そのままにしておきたいです (代わりに「文字の前」として何かがあると想像してください...)
「Numbers」などの定数は、実際には「0123456789」などの文字列を表しますが、ユーザーにも表示できません
この問題の回避策を見つけることができましたが、現在はすべてのキャラクターで機能するわけではなく、非常に非効率的です (少なくとも私の意見では)。私がしていることは、述語から述語形式を取得し、置き換える必要があるものを置き換え、代わりにその新しい形式を評価することです。これを説明する実際のコードについては、次のとおりです。
ですから、これは私がやっていることの単純化されたバージョンです。タイプミスが見られる場合は、おそらく私のコードには含まれていません。
要約する:
- ユーザーが多くの文字に対して行う述語を評価し、可能な限り効率的にしようとしながら、かなり変更する必要があります
私のアプローチで見つけた問題は次のとおりです。
- 全然きれいじゃないと思う
- すべてのケースで機能するという保証はありません (文字の 1 つが改行/入力文字の場合、述語は形式を理解できないというエラーを発生させます)。
それはすべての人々です!ここまで読んでくれてありがとう。この混乱を解決するとき、あなたの神があなたと共にありますように!
編集:関連することを明確にするために、この問題の引き金と思われるのは、述語エディターをセットアップする最初の時点で、名前を持つ1つの定数を定義できないという事実であると付け加えます(ユーザーに表示されます) ) およびその定数を表し、述語形式に挿入される値。キーパスについても同じです。1 つの表示名と、述語 ($VAR など) の var 文字列である 1 つの値を使用できれば、すべての問題が解決されます。これが可能であれば、方法を教えてください。それが不可能な場合は、私が説明する他の問題に集中してください。
cocoa - PredicatEditor に入力されたデータのクリア
多数の行を含む PredicateEditor があります。述語行に値を入力し、存在していたすべてのデータをクリアしたい場合は、正確に何をする必要がありますか?
サブビューをトラバースして null 値を設定するだけで試しました。実際にはビューからデータをクリアしますが、述語からはクリアしません。