問題タブ [fieldeditor]
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 - NSTextFieldをサブクラス化して、番号ダイヤルテキストフィールドを作成します
番号ダイヤルテキストフィールド、つまり、その隣にあるNSStepperと連動するテキストフィールドを作成しようとしています。
テキストフィールドには浮動小数点数が表示され、ユーザーはスクロールホイールを使用して、表示されている数値と上下の矢印キーを同じ効果で調整できるようにする必要があります。
また、押された修飾キーに応じて、異なる増分に切り替える必要があります。後で、ユーザーがAltキーを押しながらテキストフィールド上でマウスを左または右にドラッグすると、挿入カレットが配置された場所(数字のどの桁)が決定され、ユーザーがその数字のみをインクリメントする動作を実装する可能性があります。 1、数十、数百などのパーツをすばやく更新できます。
修飾キーとマウスドラッグの詳細はそれだけですが、私の質問は、これを最も目立たない方法で実現するための基本事項に関係しているため、バインディングやその他の機能は引き続き機能します。
これまでのところ、NSTextFieldのサブクラス(IBのセルに番号フォーマッターがアタッチされている)と、番号ダイヤルテキストフィールドのフィールドエディターであるNSTextViewのサブクラスを取得しました。これは、keyDown:をオーバーライドして、矢印キーの更新を実行できるようにするためです。
問題は、ウィンドウのデリゲートのwindowWillReturnFieldEditor:toObject:から番号ダイヤルテキストフィールドに対してこのフィールドエディタを返すと、バインディングが壊れているように見え、通常、これを行うべきではないように感じることです。
私はこれを間違った方法で行っていますか?
PS:サブクラスコードだけをhttp://gist.github.com/361265で見つけることができます 。すべてをここに投稿する必要があるかどうかはわかりませんでした。
objective-c - NSTableView の NSTextFieldCell のカスタム フィールド エディター
いくつかのカスタムNSTableView
サブクラスで満たされたカスタム サブクラスがありNSTextFieldCell
ます。矢印キーを使用して編集したセルを変更できるようにしたいと考えています。
カスタム フィールド エディターを作成し (サブクラス化NSTextView
して)、次のようにウィンドウ デリゲートから返すことで、これを実現できます。
では、、、、およびメソッドをオーバーライドして目的の機能を実装しましたが、すべて正常に動作しますMyNSTextViewSubclass
。唯一の問題は、フィールド エディターがテキスト フィールド セル エディターのように動作しなくなったことです。たとえば、Enter キーを押すと、編集を終了する代わりにテキスト フィールドに改行が挿入されます。moveUp:
moveDown:
moveLeft:
moveRight:
デフォルトのものとまったく同じように応答するカスタム フィールド エディターを作成するにはどうすればよいですかNSTextFieldCell
(オーバーライドする 4 つの関数を除く)。moveUp:
または、 、moveDown:
、moveLeft:
、およびの機能を変更するより良い方法はありmoveRight:
ますか?
編集:テキスト フィールドが編集用に選択されると、フィールド エディターがテキスト フィールドをデリゲートとして設定するようです。その場合、ここcontrol:textView:doCommandBySelector:
で説明されているようにデリゲート メソッドにアタッチするだけで役立つ場合がありますが、サブクラスまたはサブクラスでその関数を実装すると、呼び出されません。なぜだめですか?NSTextFieldCell
NSTableView
cocoa - フィールドエディタのNSTextFieldを見つける
私は使用しています
カスタムコンテキストメニューを表示できるように、独自のフィールドエディタを提供します。これは機能しますが、フィールドエディタの「menuForEvent:」メソッド内で、どのNSTextFieldにアタッチされているかをどのように見つけることができますか?
編集:さて、私はそれをTextViewの内部から取得していることがわかりました
問題は、これが良い解決策なのか、それともハックなのかということです。クラス_NSKeyboardFocusClipViewの内部レスポンダーをスキップする必要があるため、これが将来のCocoaバージョンで機能しない可能性があることを恐れました。
cocoa - 透明なフィールドエディタを備えたNSOutlineView
HUDパネルにあるNSOutlineViewを使用しています。背景を描画しないように設定しました。セルを編集するためにダブルクリックするまで、すべてが正常に見えます。フィールドエディタは、ユーザーエクスペリエンス全体を完全に台無しにする背景とフォーカスリングを描画します。
これは、NSTextFieldCellのサブクラスで行っていることです。
setDrawsBackground:NOを使用すると、完全に無視され、背景が白になります。色のアルファコンポーネントに触れることができないため、私の解決策は決して良いものではありません(そうすると、フィールドエディタは別の色を背景として使用します)が、少なくとも白い背景は得られません。
この問題の実際の解決策があるかどうか疑問に思います。独自のフィールドエディタを提供する必要がありますか?その価値はありますか?
私が欲しいのは、背景やフォーカスリングがなく、カーソルが点滅しているだけのフィールドエディタです。
ありがとう!
cocoa - NSTextFieldCell の垂直方向に拡張する fieldEditor
NSWindow
には「フィールド エディタ」が関連付けられています。これは、NSText
と同じ場所に表示されるNSTextField
かNSTextFieldCell
、ユーザーが前述のコントロールにフォーカスしたときに表示されます。
NSTextField
フィールド エディタはまたはと同じサイズNSTextFieldCell
です。ユーザーがさらにテキストを入力すると、フィールド エディターを拡張する必要があります。
これを達成するためのヒントはありますか?
java - コンボフィールドエディター。値を動的に変更する
私はEclipse RCPプロジェクトに取り組んでいます。ウォークスルーを行っているときに、設定ページに出くわし、それを回避し始めました。
ComboFieldEditor
ここで、の値を動的に変更する必要があります。で選択を行うときのように、TextFieldEditor
の値をComboFieldEditor
変更する必要があります。答えを探してみたり、Stack Overflow で見つけた解決策の 1 つを試したりしましたが、いつもNullPointerException
. この点で誰かが私を助けることができますか?
ComboFieldEditor
技術的には、動的に値を変更したいと考えています。のように、リスナーがトリガーされたときに、コンボボックスに新しい値を入れたいと思います。私はこの解決策を試しましたが、 NullPointerException
.
cocoa - Cocoa:フィールドエディタがスペースキーで自動完了するのを停止します
NSTextField
カスタム自動完了を提供したいいくつかのコントロールを備えたカスタムビューがあり、NSTextFieldDelegate
プロトコルを使用してそれらすべてを正常に実装しました。自動補完は、編集されているテキストフィールドに応じて、フルネームまたは地名になります。
問題は、オートコンプリートにはほとんどの場合スペース文字が含まれているため、ユーザーが提案に一致するものを入力しているが、その提案を受け入れたくない場合、ユーザーがスペースキーを押すと、フィールドエディターが提案を受け入れます。 。フィールドエディタにタブキーのみを使用して提案を受け入れてもらいたい。
NSTextView
これにはカスタムフィールドエディタを提供するためのサブクラス化が含まれることを理解しています。これはAppleによって許容可能な方法として文書化されていますが、オーバーライドする必要のあるメソッドとオーバーライドされたメソッドが実行する必要があることは明確ではありません。私が欲しいものを手に入れてください。
誰かがこれがどのように達成されるかを提案できますか?
objective-c - NSScrollViewにフィールドエディタを埋め込む
スクロールビュー内にフィールドエディタ(NSTextField用)を埋め込んだ経験がある人はいますか?編集中にNSTextFieldをスクロール可能にしようとしています。
私が試したこと:
-becomeFirstResponder
カスタムフィールドエディタが呼び出されたときに動的に埋め込みます。この半作品; 問題は、編集中にNSTextFieldのサイズが変更されると、カスタムフィールドエディターのサイズが変更されなくなることです(これが必要です-アコーディオンスタイルのアプリケーションを作成します)NSScrollViewから「マスカレード」フィールドエディタを作成し、NSInvocationを使用して、メソッドを実際の代理フィールドエディタに転送します。これは私が本当にうまくいくことを望んでいる方法です。ここにリストされているすべてのメソッドを実装しました; しかし
EXC_BAD_ACCESS
、フィールドエディタが実際にロードされるたびに(たとえば、を呼び出すと[customTextField selectText:nil]
)取得します。ゾンビが有効になっている場合でも、デバッガーから情報を取得できないようです。ログを確認してNSObjCMessageLoggingEnabled
も何も得られません。これらの人はそれを機能させたようですが、それは7年前のことです。
最後の手段は、NSTextFieldsを完全に削除してNSTextViewsを使用することです(または、フィールドエディターメカニズムに依存する代わりに、自分で作成します)が、一度に1つしか編集されないデータの行が多数あるため、それらのすべてに対してNSTextViewをインスタンス化する必要があります...しかし、おそらくそれはそれほど悪くはないでしょう。
cocoa - 選択時に NSTextFieldCell のテキスト属性が変更されました
行の列を選択するとオーバーライドされたメソッドが呼び出されるテーブルビューがあります
また、セルのフィールド エディターを次のように返します。
セルが選択されると、セル内のテキストの属性が変更されます。同様に、フォントサイズ、フォントフェイス、フォントスタイルなどがそれに応じて変化します。テキストが選択モードになっているときは、それを制御できないようです。選択後もフォント プロパティを変更したくありません。このテキスト属性の変更を回避するにはどうすればよいですか?