Существует NSUserInterfaceValidations Protocol , универсальный протокол для проверки элементов. Вы просто реализуете метод validateUserInterfaceItem:
и возвращаете NO, чтобы отключить действие.
- (BOOL)validateUserInterfaceItem:(id < NSValidatedUserInterfaceItem >)anItem {
if([anItem action] == @selector(cut:) ||
[anItem action] == @selector(copy:) ||
[anItem action] == @selector(paste:)) return NO;
return [self respondsToSelector:[anItem action]];
}
Существует также NSMenuValidation Protocol , который выполняет ту же функцию, но используется только для проверки элементов меню вместо всех элементов интерфейса. Если вы его не реализуете, система вернется к стандартной проверке.