私はSpotlightと同様に、編集可能なNSTextFieldを含むサブクラスのNSViewを持っています。NSMenuItemのカスタムビューで編集可能なNSTextField
テキストフィールドを選択して強調表示するのが非常に困難です。テキストフィールドの編集領域をすばやくすばやくクリックすると、実際にテキストを入力できますが、あまり重要でないアプリのフィールドにテキストを追加しているかのように、灰色で表示されます。
viewDidMoveToWindow
を使用してViewウィンドウのフォーカスを取得しようとしましたが、明らかにNSMenuItemのウィンドウはキーをうまく扱えないカーボンウィンドウです。
短い話ですが、この作業を成功させるにはどうすればよいでしょうか? Spotlightは境界線のないウィンドウですが、それは私の目的には適していません。
すべての提案は非常に役に立ちます。
これでどのように問題を解決しましたか?あなたは明らかにAppleが推奨していないことをしていませんでした。私は現時点で理解しているように、単にSpotlightの動作を再現しようとしていました。 NSViewは私の見解ではサブクラス化されている非常に一般的な「UIクラス」です。脈動的なステータスバー項目を作成したい場合や、空港ステータスバー項目でAppleが行うことのようなものを作成する場合はどうでしょうか。 UIクラスをサブクラス化してはいけないという宣言は広すぎ、本当に正当なものではありません。要点は、あなたが望む機能を他にどのように達成したいのですか?どのようにしましたか? –
あなたはどういうことを言っていますか?サブクラス化されたUI要素は、将来のバージョンのOSと互換性がありませんか?それは私が今まで聞いたことのない最も奇妙なことです。 OSのすべてのコントロールは、サブクラス化されたUI要素です!拡張可能なNSViewクラスを追加する理由のすべては、独自のカスタムビューを持つことです。私はDevと同意します。あなたはAppleが推奨していないことをやっていませんでした。実際には、可能であればカスタムビューを作成することを強くお勧めします。 – strange