NSComboBox ポップアップをプログラムで閉じる方法はありますか?
ポップアップが開いているときに NSComboBox にバグがあるようで、コントロールが削除されてから解放されます。何らかの理由で、NSComboBox の dealloc は、破棄する前にポップアップをクリアしません。
編集:明確にするために-このバグは、ポップアップリストが開いているときにのみ発生します。それ以外の場合、コントロールは適切かつクリーンに解放されます。
編集編集:これはそれを再現する方法です。
- 新しい Cocoa アプリケーションを作成します。
- 自動参照カウントをオフにします。
- @(applicationDidFinishLaunching) で、新しい NSComboBox を作成し、メンバーに保存します。
- コンボ ボックスをウィンドウの contentView に追加します。
- キーボード ショートカットを使用して新しいメニュー項目を作成し、セレクターにバインドします。
- メニュー項目のセレクター: ビューからコンボ ボックスを削除し、メンバーを解放します。nil に戻すことを忘れないでください。
- アプリケーションを実行します。
- コンボボックスをクリックして、ポップアップを表示します。
- ショートカットを使用して、コンボ ボックスを削除します。