3

NSToolbar に NSComboBox が必要です。私はIBとXcode 4.2を介してそれを行います。コンボボックスをツールバーに配置して、プログラムを開始できます。初めて、そして初めてだけ、アプリを起動すると、ComboBox にフォーカスを設定すると、次の例外が発生します。

間違ったビュー ((null)) でフォーカスのロックを解除すると、NSComboBox が期待されます

次にコンボボックスにフォーカスを設定すると、例外は発生しません。

NSTextField または searchField で同じことを行っても、例外は発生しません。以前のバージョンの Xcode/Objective-C でこのような問題が発生したことを覚えていないので、これがバグであるかどうか疑問に思っています。

4

4 に答える 4

1

私も同じ問題を抱えてる。テストフィールドを編集不可に設定することは私にとって選択肢ではなく、ビュー内のボックスでトリックを機能させることができませんでした。

問題は「フォーカス」に関連しているように見えるので、インターフェースビルダーに行き、NSComboBox のフォーカスリングを「なし」に設定しました。これで問題は解決しました。

を使用してプログラム的にこれを行うことができます-setFocusRingType:NSFocusRingTypeNone

于 2012-04-09T09:43:30.050 に答える
0

次の回避策をもう試しましたか?

ツールバーにNSComboBoxをドロップする前に、ツールバーに空のNSViewをドロップしてみてください。これにより、空のビューを持つツールバーアイテムが作成されます。次に、作成したツールバー項目内のNSView内にNSComboBoxをドロップします。

私も同様の問題を抱えていましたが、これでうまくいきました。

于 2012-01-25T10:49:53.483 に答える
0

私も同じ問題を抱えていました。コンボ ボックスの動作を選択のみ可能に変更すると、これが修正されます。

幸運なことに、コンボ ボックスを編集可能にする必要はありませんでした。

于 2012-02-28T22:07:47.177 に答える
0

NSPanel 内の NSComboBox と同じ問題。IBでフォーカスリングを「デフォルト」から「なし」に変更しました。これで問題は解決しました。

ここで、もう少し背景を説明します。私のコードは、複数の変更が行われるまで正常に動作しました。問題は、Xcode 4.2 (Snow Leopard) から 4.3 (Lion) に変換した後に発生しました。また、この移行には GC から ARC への移行も含まれていました。

于 2012-04-23T20:01:37.660 に答える