有没有办法以编程方式关闭NSComboBox弹出窗口?
当弹出窗口打开时,NSComboBox似乎有一个错误,控制器被删除然后释放。出于某种原因,NSComboBox的dealloc在破坏之前不会清除弹出窗口。
编辑:只是为了澄清 - 只有在打开弹出列表时才会出现此错误。否则控制器会正确且干净地释放。
修改编辑: 这就是重现它的方法。
答案 0 :(得分:-2)
您可以使用NSComboBox
委托方法-comboBoxWillPopUp:
和-comboBoxWillDismiss:
来控制BOOL,从而检查代码或灰显菜单项。
BOOL
属性可用于控制菜单项的启用。
设置组合框的委托。
到委托添加
的界面 @property BOOL itemEnabled;
和实施添加
- (void)comboBoxWillPopUp:(NSNotification *)notification {
self.itemEnabled = NO;
}
- (void)comboBoxWillDismiss:(NSNotification *)notification {
self.itemEnabled = YES; //re-enabled when dismissed
}
将itemEnabled
的初始值设为YES
。
在xib中,将菜单项的Enabled属性绑定到委托,将Model Key Path设置为self.itemEnabled