美文网首页
Mac桌面右键不显示菜单,文件也不显示的解决办法

Mac桌面右键不显示菜单,文件也不显示的解决办法

作者: Fisher123 | 来源:发表于2020-05-26 13:41 被阅读0次

Mac桌面右键不显示菜单,文件也不显示,出现该现象,可能是因为安装了带有隐藏桌面文件功能的软件,无意中操作引起的,可以利用终端轻松解决:

1. 在Launchpad中找到系统自带终端并打开:

系统自带终端

2. 输入如下命令,回车即可:

defaults write com.apple.finder CreateDesktop -bool true; killall Finder

如此便可以解决桌面不显示文件、右键不显示菜单的问题。

PS:当我们需要截图发给别人,担心泄露桌面文件的时候,可以逆向操作,隐藏桌面文件,方法同上,命令如下:

defaults write com.apple.finder CreateDesktop -bool false; killall Finder

有一些app可以直观的显示/隐藏桌面,比如:Alfred Workflow,HiddenMe Free、One Switch等。

By the way,如果你想在Mac开发中用代码的方式来执行终端命令,可以使用NSTask这个类来实现,具体代码如下:

- (IBAction)buttonAction:(NSButton *)sender {
    NSString *showString = @"defaults write com.apple.finder CreateDesktop -bool true; killall Finder";
    NSString *hideString = @"defaults write com.apple.finder CreateDesktop -bool false; killall Finder";
    if (sender == self.showFolderButton) {
        [self cmd:showString];
    } else if (sender == self.hideFolderButton) {
        [self cmd:hideString];
    }
}

// 执行String Commands
- (NSString *)cmd:(NSString *)cmdStr {
    // 初始化并设置shell路径
    NSTask *task = [[NSTask alloc] init];
    [task setLaunchPath: @"/bin/bash"];
    // -c 用来执行string-commands(命令字符串),不管后面的字符串里是什么都会被当做shell code来执行
    NSArray *arguments = [NSArray arrayWithObjects: @"-c", cmdStr, nil];
    [task setArguments:arguments];
    
    // 新建输出管道作为Task的输出
    NSPipe *pipe = [NSPipe pipe];
    [task setStandardOutput:pipe];
    
    // 开始task
    NSFileHandle *file = [pipe fileHandleForReading];
    [task launch];
    
    // 获取运行结果
    NSData *data = [file readDataToEndOfFile];
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

希望以上对你有用!

相关文章

网友评论

      本文标题:Mac桌面右键不显示菜单,文件也不显示的解决办法

      本文链接:https://www.haomeiwen.com/subject/fqnmahtx.html