禁用ApplescriptObjc上的菜单项

时间:2013-08-18 16:05:16

标签: cocoa menuitem applescript-objc

我正在用ApplescriptObjc编码。
我想在一个函数中禁用菜单项“Preference ...”,但我不能这样做。

我可以禁用按钮。这是代码:

myButton's setEnabled_(false)

所以我尝试禁用菜单项,如按钮:

myMenuItem's setEnabled_(false)

我查看了Apple Reference(https://developer.apple.com/library/mac/documentation/cocoa/reference/ApplicationKit/Protocols/NSMenuValidation_Protocol/Reference/Reference.html),但我无法使用此引用,因为我不明白如何禁用它。

- (BOOL)validateMenuItem:(NSMenuItem *)item {
    int row = [tableView selectedRow];
    if ([item action] == @selector(nextRecord) &&
        (row == [countryKeys indexOfObject:[countryKeys lastObject]])) {
        return NO;
    }
    if ([item action] == @selector(priorRecord) && row == 0) {
        return NO;
    }
    return YES;
}

我以为我可以这样使用这个功能:

on validateMenuItem_(myMenuItem)
    if myMenuItemIsEnabled = true then
        return true
    else
        return false
end validateMenuItem_

但这不起作用(没有回应)。如何禁用菜单项?

1 个答案:

答案 0 :(得分:0)

将菜单项连接到IB属性后,使用以下代码将其禁用:

set (myMenuItem's enabled) to false

其中myMenuItem是连接到您要禁用的菜单项的属性。 您必须确保取消选中名为“自动启用项目”的菜单项菜单选项。