2011-12-09 86 views
3

有沒有辦法隱藏NSComboBox的彈出按鈕?我在NSComboBox或NSComboBoxCell的文檔中找不到任何內容。 NSComboBox上有一個setButtonBordered:方法,但是這只是改變了按鈕樣式。隱藏/禁用NSComboBox按鈕

如果我不能隱藏它,我至少可以禁用它嗎?

+0

我發佈了一個解決方法,可能適合你。在我的應用程序中,我仍然希望能夠隱藏它,所以我很樂意聽到其他答案。 – paulmelnikow

回答

0

如果組合框沒有項目,單擊彈出按鈕不會執行任何操作。

也許你可以通過清空列表來解決限制,當你想禁用按鈕。

它使點擊沒有效果,但它不隱藏按鈕或將其作爲禁用。

+0

不是真的 - 點擊按鈕組合框仍然會顯示一個空的列表框。 – adib

0

我不認爲這是可能的。一個沒有按鈕的NSComboBox實際上是一個NSTextField,所以我猜這是不必要的。你可以通過繼承NSComboBoxCell並重寫-drawWithFrame:inView:或-drawInteriorWithFrame:inView:來完成此操作。

最安全的方法可能是添加自己的buttonHidden屬性,並使用ObjC運行時方法class_getMethodImplementation在NSTextField中查找同一個方法的IMP,並在隱藏該按鈕時調用該方法。你實際上會稱超級超級,所以你會得到一個普通的文本字段外觀。