假設button1是NSPopUpButton 假設附加到button1的菜單顯示並被跟蹤。dismissPopUp is not recognized
[[button1 cell] dismissPopUp] --- dismissPopUp無法識別。
爲什麼dismissPopUp方法無法識別?
感謝
假設button1是NSPopUpButton 假設附加到button1的菜單顯示並被跟蹤。dismissPopUp is not recognized
[[button1 cell] dismissPopUp] --- dismissPopUp無法識別。
爲什麼dismissPopUp方法無法識別?
感謝
因爲NSCells不給dismissPopUp
消息作出響應。
如果您在運行時將此作爲例外情況,請確保button1
確實是一個彈出式按鈕 - 也就是說,確保您將該插座連接到IB中的正確對象,或者您分配了如果您在代碼中創建了正確的對象。在後一種情況下,使用調試器來檢查變量。
如果這只是您從編譯器獲得的警告,可能是因爲cell
是NSControl(NSPopUpButton的grand-superclass)的一種方法,並且鍵入爲返回NSCell。編譯器無法知道這個特定的控件將返回一個NSPopUpButtonCell。解決的辦法是分配cell
消息類型爲NSPopUpButtonCell *
一個變量的結果,然後發送dismissPopUp
消息中的對象變量:
NSPopUpButtonCell *cell1 = [button1 cell];
[cell1 dismissPopUp];
如果仍然收到警告,你需要在[button1 cell]
表達式前添加一個明確的強制轉換。