以编程方式更改Fn键行为Mac OS X.

时间:2013-06-04 08:25:55

标签: objective-c macos

我想编写一个简单的cmdline应用程序,它将切换“将所有F1,F2 ...键用作标准功能键”。我知道我可以使用AppleScript,但这显示了gui并不是很好。那么如何从代码中做到这一点?我尝试了默认命令defaults write -g com.apple.keyboard.fnState -bool false,并且在使用defaults命令读取时更改了首选项标志,但在GUI中没有,并且它不起作用。 也试过类似的东西:

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSString *key = @"com.apple.keyboard.fnState";
    BOOL fnState =  [defaults boolForKey:key];
    NSLog(@"First value of fnState: %@", fnState ? @"true" : @"false" );
    if (fnState) {
        [defaults setBool:NO forKey:key];
    }
    else{
        [defaults setBool:YES forKey:key];
    }
    fnState =  [defaults boolForKey:key];
    NSLog(@"Value of fnState after toggle: %@", fnState ? @"true" : @"false" );
    [NSUserDefaults resetStandardUserDefaults];

这个在运行之间记录了正确的状态,但默认命令没有看到它,而且Fn键也不关心。

如何进行?我知道可以做到。

0 个答案:

没有答案