2010-07-26 39 views
6

我有一個菜單項,其中一些菜單項使用綁定來獲得它們的標題。這些項目始終處於啓用狀態,並且既不會自動啓用/禁用應用程序,也不會導致調用validateUserInterfaceItem :.如果您刪除了標題上的綁定,則會再次開始工作。菜單項的目標設置爲零(First Responder)。如果你點擊一個,它會執行選擇器(動作)。綁定NSMenuItem的標題中斷啓用/禁用驗證

錯誤?該怎麼辦?

+1

請注意,近5年後仍然如此。 – DanielGibbs 2015-06-23 04:14:28

+1

然後兩年後。 – matt 2017-04-22 02:49:34

回答

4

由於某些原因,當您使用綁定設置菜單項的標題時,即使目標/操作是nil,菜單項也會變爲啓用 。

如果要永久禁用您可以通過菜單項的enabled狀態結合到恆定NO解決這個菜單項:

NSNumber *alwaysNo = [NSNumber numberWithBool:NO]; 
[menuItem bind:@"enabled" toObject:alwaysNo withKeyPath:@"boolValue" options:nil]; 

請注意,這不是最優雅的解決辦法,但在我的情況下,它仍然比不使用綁定的標題更清潔。