2010-07-26 5 views
6

У меня есть меню, в котором некоторые элементы меню используют привязки для получения своего названия. Эти элементы всегда включены и не могут автоматически включать/отключать, так как они должны NOR вызывать вызов для validateUserInterfaceItem :. Если вы удалите привязку по заголовку, то это снова начнет работать. Элементы меню имеют целевой набор, равный нулю (первый ответчик). Если вы нажмете один, он выполнит селектор (действие).Привязка к разрешению заголовка NSMenuItem разрешена/отключена

Ошибка? Что делать?

+1

Просто отметьте, что это все еще так почти 5 лет спустя. – DanielGibbs

+1

И еще через два года после этого. – matt

ответ

4

По какой-то причине, когда вы устанавливаете заголовок пункта меню с привязками, элемент меню становится включенным , даже если цель/действие nil.

Если вы хотите навсегда отключить пункт меню вы можете обойти это путем связывания enabled статуса элемента меню к постоянному NO:

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

Обратите внимание, что это не самый изящный обходной путь, но в моем он был еще чище, чем не использовать привязки для названия.