首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSComboBox关闭语法弹出

NSComboBox关闭语法弹出
EN

Stack Overflow用户
提问于 2014-09-23 15:22:23
回答 1查看 733关注 0票数 1

是否有办法以编程方式关闭NSComboBox弹出窗口?

当弹出窗口打开时,NSComboBox似乎有一个bug,控件被移除,然后释放。由于某些原因,NSComboBox的析取在销毁之前不清除弹出窗口。

编辑:只是为了澄清-这个错误只会在弹出列表打开时发生。否则,控件将被正确、干净地释放。

编辑编辑:这是如何复制它。

  • 创建一个新的可可应用程序。
  • 关闭自动参考计数。
  • 在@(applicationDidFinishLaunching)中创建一个新的NSComboBox并将其存储到一个成员。
  • 将组合框添加到窗口的contentView中。
  • 使用键盘快捷方式创建新菜单项并绑定到选择器。
  • 在菜单项的选择器中:从视图中移除组合框并释放成员。别忘了把它放回零。
  • 运行应用程序。
  • 单击组合框以显示弹出窗口。
  • 使用快捷方式移除组合框。
EN

回答 1

Stack Overflow用户

发布于 2014-09-24 15:41:59

通过使用NSComboBox委托方法-comboBoxWillPopUp:-comboBoxWillDismiss:来控制BOOL,您可以在代码中执行检查或将菜单项设置为灰色。

BOOL属性可用于控制启用菜单项。

设置组合框的委托。

添加到委托添加的接口。

@property BOOL itemEnabled;

并在实现中添加

代码语言:javascript
复制
- (void)comboBoxWillPopUp:(NSNotification *)notification {
    self.itemEnabled = NO;
}
- (void)comboBoxWillDismiss:(NSNotification *)notification {
    self.itemEnabled = YES; //re-enabled when dismissed
}

itemEnabled的初始值设置为YES

在xib中,将菜单项的启用属性绑定到委托,并将模型键路径设置为self.itemEnabled

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25998881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档