有没有办法隐藏NSComboBox的弹出式按钮?我在NSComboBox或NSComboBoxCell的文档中找不到任何东西。在NSComboBox上有一个setButtonBordered:方法,但它只是更改为另一种按钮样式。
如果我不能隐藏它,我至少可以禁用它吗?
发布于 2012-01-21 04:09:56
如果组合框中没有任何项,则单击弹出按钮不会执行任何操作。
也许当你想禁用按钮时,你可以通过清空列表来解决这个限制。
它使单击没有任何效果,但不会隐藏按钮或将其绘制为禁用状态。
发布于 2012-10-18 00:49:23
我认为这是不可能的。没有按钮的NSComboBox实际上就是一个NSTextField,所以我猜它被认为是不必要的。您可以通过继承NSComboBoxCell的子类并覆盖-drawWithFrame:inView:或-drawInteriorWithFrame:inView:来实现这一点。
最安全的方法可能是添加您自己的buttonHidden属性,并使用ObjC运行时方法class_getMethodImplementation在NSTextField中查找相同方法的IMP,然后在按钮隐藏时调用它。您将有效地调用super's super,因此您将获得常规的文本字段外观。
https://stackoverflow.com/questions/8440785
复制相似问题