<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[elsonpeng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/elsonpeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; elsonpeng]]></copyright><item><title><![CDATA[MacOS下WKWebView设置背景透明问题]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/141856903</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/141856903</guid><author>elsonpeng</author><pubDate>Tue, 03 Sep 2024 11:25:43 +0800</pubDate><description><![CDATA[这两个引用，是之前上一个页面内容展示的图片。如果要解决这个问题，只要在WindowController里面，取消掉Appearance里面的Shadow选项即可，示意如下。这两种方法都可以达到效果，但是会遇到可能出现如下阴影残留问题。]]></description><category></category></item><item><title><![CDATA[WKWebView加载项目中网页的资源图片路径异常]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/141394100</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/141394100</guid><author>elsonpeng</author><pubDate>Wed, 21 Aug 2024 15:07:10 +0800</pubDate><description><![CDATA[WKWebView加载项目中网页的资源图片路径异常原因分析和解决办法]]></description><category></category></item><item><title><![CDATA[MacOS下更新Cocoapods到指定版本]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/52959685</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/52959685</guid><author>elsonpeng</author><pubDate>Thu, 15 Aug 2024 21:02:49 +0800</pubDate><description><![CDATA[sudo gem install -n /usr/local/bin cocoapods -v 版本号。安装指定版本，使用下面命令。]]></description><category></category></item><item><title><![CDATA[MacOS下更新curl流程]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/81488140</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/81488140</guid><author>elsonpeng</author><pubDate>Thu, 04 Jul 2024 09:55:47 +0800</pubDate><description><![CDATA[macOS更新curl]]></description><category></category></item><item><title><![CDATA[获取Shell命令执行错误结果]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/126940558</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/126940558</guid><author>elsonpeng</author><pubDate>Mon, 19 Sep 2022 19:51:58 +0800</pubDate><description><![CDATA[shell脚本命令执行错误结果]]></description><category></category></item><item><title><![CDATA[oc下如果通过二进制文件数据判断zip格式]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/114839629</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/114839629</guid><author>elsonpeng</author><pubDate>Mon, 15 Mar 2021 16:42:16 +0800</pubDate><description><![CDATA[具体实现如下，通过文件头获取指定长度的十六进制字符串进行判断


- (BOOL)isRealZipFileForNSData:(NSData *)fileData {
    if (!fileData || [fileData length] == 0) {
        return NO;
    }
    NSMutableString *hexHeaderString = [[NSMutableString alloc] initWithCapacity:[fileData length]]]]></description><category></category></item><item><title><![CDATA[MasOS如果在全屏模式（专注模式）下的应用上层再显示一个窗口]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/113105701</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/113105701</guid><author>elsonpeng</author><pubDate>Mon, 25 Jan 2021 11:28:05 +0800</pubDate><description><![CDATA[在MacOS下，很多人会有习惯进入全屏幕，也就是苹果说的「专注模式」，在这个模式下，我们是看不到其他应用的。



如果我们想在这个全屏模式下再展示一个窗口，通过NSWindow是无法实现的，但是通过NSPanel可以实现，需要如下四个步骤

（1）设置窗口类型为NSPanel

（2）设置styleMask:NSBorderlessWindowMask | NSNonactivatingPanelMask

（3）设置窗口的Behavior为：[self setCollectionBehavior:NSW]]></description><category></category></item><item><title><![CDATA[MacOS下获取系统快捷键的存储位置]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/112594055</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/112594055</guid><author>elsonpeng</author><pubDate>Wed, 13 Jan 2021 22:15:33 +0800</pubDate><description><![CDATA[举例场景：

想获取到某个快捷键是否被系统调用，如下图的 调度中心



存储位置：~/Library/Preferences/com.apple.symbolichotkeys.plist

每个key里面包含四个字段：

action:int，表示热键的行为.

enabled:bool，表示是否启用了热键.

type:string，一般是standard

param_1:这里面记录按键的键码相关参数
...]]></description><category></category></item><item><title><![CDATA[iOS和MacOS中获取文件属性可读可写（rwx）的实现方法]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/112004971</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/112004971</guid><author>elsonpeng</author><pubDate>Thu, 31 Dec 2020 11:23:44 +0800</pubDate><description><![CDATA[我们有时候需要获取到一个文件目录是否允许可读可写可执行呢（rwx），可以通过如下OC代码实现


    NSFileManager *fm2 = [NSFileManager defaultManager];
    NSString *filePath = @"Your file Path";    

    NSDictionary *fileAttriDict = [fm2 attributesOfItemAtPath:filePath error:nil];
    

我们打印fileAttr]]></description><category></category></item><item><title><![CDATA[NSWindow全屏后，把左上角的菜单栏遮挡的问题和无法显示的问题]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/109023528</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/109023528</guid><author>elsonpeng</author><pubDate>Mon, 12 Oct 2020 10:50:49 +0800</pubDate><description><![CDATA[问题原因，在显示window的时候，设置了如下


    [self setLevel:NSStatusWindowLevel];
    [self setFrame:rect display:YES];
    [self makeKeyAndOrderFront:nil];


其中NSStatusWindowLevel的层级较高，所以会遮挡左上角的系统菜单栏，把这一行删掉即可。或者根据自己需要改成自己需要的层级
...]]></description><category></category></item><item><title><![CDATA[MacOS设置NSScroller透明并置于内容上面]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/109003196</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/109003196</guid><author>elsonpeng</author><pubDate>Sat, 10 Oct 2020 19:48:51 +0800</pubDate><description><![CDATA[类似于iOS下NSScrollView的效果，实现方式，可以参考如下链接：

https://stackoverflow.com/questions/4236190/overlay-nsscroller-over-content

https://stackoverflow.com/questions/4181029/how-to-draw-a-transparent-nsscroller
]]></description><category></category></item><item><title><![CDATA[MacOS下NSWindowZoomButton两种形式（两种绿色交通灯）]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/108988566</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/108988566</guid><author>elsonpeng</author><pubDate>Fri, 09 Oct 2020 23:53:03 +0800</pubDate><description><![CDATA[我们在实际开发中，有时候会发现绿色的交通灯有两种展现样式分别如下：





一种是加号的形式，一种是放大的模式；

那么我们开发中，如何设置成自己需要的第二种模式呢？

第1种方法，通过代码设置：


[self.view.window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary]

第2种方法，通过xib来设置，截图如下：


...]]></description><category></category></item><item><title><![CDATA[Mac Big Sur解决NSSecureTextField输入出现Password提示信息无法输入的问题]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/108300927</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/108300927</guid><author>elsonpeng</author><pubDate>Sat, 29 Aug 2020 23:09:48 +0800</pubDate><description><![CDATA[近期苹果更新了11.0Mac Big Sur版本，但是发现有个兼容性问题。

我买的界面上有两个输入框，一个NSTextField，一个NSSecureTextField

通过设置nextKeyView，快捷键tab可以进行方便切换

这个功能在Big Sur上，通过tab切换的时候，无法输入密码

通过调研各种资料，最后在这个链接找到灵感：

https://stackoverflow.com/questions/43943647/tabbing-between-nstextfields-with-n.]]></description><category></category></item><item><title><![CDATA[Mac下NSBezierPath绘制线条stroke宽度不正确的问题]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/107869652</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/107869652</guid><author>elsonpeng</author><pubDate>Fri, 07 Aug 2020 20:08:32 +0800</pubDate><description><![CDATA[遇到的问题是绘制的1像素，但是实际显示出来是0.5像素，查阅资料，有如下可以借鉴的解决办法，记录供以后备忘：

https://stackoverflow.com/questions/33191813/nsbezierpath-with-rounded-rect-does-not-have-smooth-corners



https://stackoverflow.com/questions/8016618/how-to-get-a-1-pixel-line-with-nsbezierpath
...]]></description><category></category></item><item><title><![CDATA[Xcode8运行报错ld framework not found ColorSync for architecture x86_64]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/107662079</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/107662079</guid><author>elsonpeng</author><pubDate>Wed, 29 Jul 2020 13:38:52 +0800</pubDate><description><![CDATA[近期因为需要在10.13系统上查找兼容性问题，把Xcode11下运行的工程需要在10.13系统上运行起来，但是发现始终无法编译通过，并且报错：

Xcode8运行报错ld framework not found ColorSync for architecture x86_64

查了好久没有查到解决办法，即时从高系统上把ColorSync这个Framework拷贝到10.13上，也会运行出错。后来查了资料，发现10.13系统上可以运行Xcode9，通过从developer官网上下载Xcode9.3运行就可]]></description><category></category></item><item><title><![CDATA[NSFont获取字体高度lineHeight]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/107263696</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/107263696</guid><author>elsonpeng</author><pubDate>Fri, 10 Jul 2020 19:35:03 +0800</pubDate><description><![CDATA[Mac下有时候字体NSFont是没有lineHeight的，所以要获取，需要自己计算下


NSRect tempRect = [textString boundingRectWithSize:NSMakeSize(0, 0) options:NSStringDrawingUsesDeviceMetrics attributes:[NSDictionary dictionaryWithObjectsAndKeys:textFont, NSFontAttributeName, nil]];


...]]></description><category></category></item><item><title><![CDATA[MacOS下通过静态库方式引入gPRC功能]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/106576996</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/106576996</guid><author>elsonpeng</author><pubDate>Fri, 05 Jun 2020 19:52:06 +0800</pubDate><description><![CDATA[无论是通过gPRC的官网，还是github上对于gPRC的库文件引用，都是通过cocoapods的方式将它引入到自己的工程中，然后编译使用。但是会带来如下多个问题

（1）如果我们是多人协作开发，当把代码提到SVN上的时候，别人check下来你的代码，还需要重新编译一次gRPC的各种lib库，这个编译过程特别的耗时。

（2）在manage scheme里面可以看到两个scheme相同的名称，如下图，尝试改了这个名字，但是无法提交到SVN上面别人check到你的代码，还是有问题



基于如上问题，所以想到]]></description><category></category></item><item><title><![CDATA[macOS下通过xcodebuild命令自动打包编译gPRC工程]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/106547028</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/106547028</guid><author>elsonpeng</author><pubDate>Thu, 04 Jun 2020 15:23:42 +0800</pubDate><description><![CDATA[近期项目中引用gRPC，导致通过命令行编译生成的，直接未引用gPRC之前用的是：


xcodebuild -configuration Release

但是因为gRPC要使用cocoapods，所以会生成一个xcworkspace，这个时候之前的命令就不会生效

这个是时候需要重新改动打包脚本，另外需要知道scheme名称，通过如下命令可以查到当前包含的所有scheme名称


xcodebuild -workspace YourProject.xcworkspace -showBuildSetting]]></description><category></category></item><item><title><![CDATA[MacOS下动态加载本地字库并展现]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/106407218</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/106407218</guid><author>elsonpeng</author><pubDate>Thu, 28 May 2020 16:06:28 +0800</pubDate><description><![CDATA[主要分为两步，第一步首先要对字体进行本地注册，执行如下代码


- (void)loadExternFonts:(NSString *)fontFilePath {
    
    NSArray *availableFonts = [[NSFontManager sharedFontManager] availableFonts];
    NSURL *fontURL = [NSURL fileURLWithPath:fontFilePath];
    CFErrorRef error = NULL]]></description><category></category></item><item><title><![CDATA[mac OS中判断线条选中]]></title><link>https://blog.youkuaiyun.com/elsonpeng/article/details/99763687</link><guid>https://blog.youkuaiyun.com/elsonpeng/article/details/99763687</guid><author>elsonpeng</author><pubDate>Mon, 19 Aug 2019 21:17:48 +0800</pubDate><description><![CDATA[https://oleb.net/blog/2012/02/cgpath-hit-testing/

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaDrawingGuide/Paths/Paths.html#//apple_ref/doc/uid/TP40003290-CH206...]]></description><category></category></item></channel></rss>