所以我花了一些時間檢查CocoaDev,閱讀NSMenuItems上的Cocoa文檔,並在Interface Builder中做一些測試。從Interface Builder連接NSMenuItems的最佳方法是什麼?
在我的應用程序中,我有一個在Interface Builder中設計的應用程序菜單([NSApp mainMenu])。我看到三條潛在路徑:
將我的動作響應者放在NSApplicationDelegate中。這對我來說似乎很陌生,部分原因是它距離食物鏈很遠,部分原因是它看起來狂奔。
創建一個可以偵聽各種NSMenuItem動作消息的子視圖。這似乎很有用,但它看起來像爲了在響應者鏈中可能有一些我無法想象的魔法。
創建一個NSObject,它偵聽特定的應用程序菜單的東西,把它放在xib中,然後連線。這對我來說似乎是目前最好的解決方案,因爲我可以分離內容,而不依賴於響應者鏈來達到特定對象。但是,我想知道,當我的應用程序達到足夠的複雜程度時,這可能是一個問題,因爲它篡奪了響應者鏈,這可能是因爲使用方便以外的原因。
對不起,長期的問題。有一個首選方法嗎? 謝謝!
謝謝Bavarious!我忽略了setNextResponder功能,這使得事情看起來不如以前那麼靈活。既然你和mipadi都提到可以把這些東西放到應用程序委託中,那麼我就會堅持我的全局東西。 – 2011-05-08 04:22:12
+1感謝這個信息..經過長時間的搜索和努力,我找到了這個答案 – 2013-06-19 11:15:32
當我嘗試實現第三種方法時,我的menuItem是灰色的。爲什麼會發生? – 2016-05-04 20:40:15