有没有办法以编程方式关闭 NSComboBox 弹出窗口?
当弹出窗口打开时,NSComboBox 似乎存在一个错误,并且控件被删除然后释放。出于某种原因, NSComboBox 的 dealloc 在销毁之前不会清除弹出窗口。
编辑:只是为了澄清-这个错误仅在打开弹出列表时发生。否则控制被正确和干净地释放。
编辑编辑:这是如何重现它。
- 创建一个新的 Cocoa 应用程序。
- 关闭自动引用计数。
- 在 @(applicationDidFinishLaunching) 创建一个新的 NSComboBox 并将其存储到一个成员。
- 将组合框添加到窗口的 contentView。
- 使用键盘快捷键创建一个新菜单项并绑定到选择器。
- 在菜单项的选择器中:从视图中移除组合框并释放成员。不要忘记将其设置回零。
- 运行应用程序。
- 单击组合框以显示弹出窗口。
- 使用快捷方式删除组合框。