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];
}
希望以上对你有用!
网友评论