我有一个灰度图像,我想用它来绘制Cocoa控件.图像具有不同级别的灰度.在最黑暗的地方,我希望它能画出最暗的指定色调.我希望它在源图像为白色时是透明的.
基本上,我想重现iPhone上UINavigationBar中看到的tintColor的行为.
到目前为止,我已经探索了几个选项:
使用SourceOver合成在灰度图像上绘制色调颜色 - >这需要非不透明的色调 - >结果比期望的要暗得多
使用CIMultiplyCompositing CIFilter为图像着色 - >我不能[CIImage drawAtPoint:fromRect:operation:fraction:]只绘制部分图像.同样适用于NSImage - >我偶尔会碰到一些我无法理解的崩溃
将灰度图像转换为蒙版.即黑色应该是不透明的.白色应该是透明的.灰色应具有中间alpha值. - >这似乎是最好的解决方案 - >尽我所能,我无法做到这一点.
我正在开发一个非基于文档的Core Data应用程序.
我希望在发生变化时保存更改.这是用户在此类应用程序中所期望的.这也是Apple在iPhoto或iTunes中实现的.
蛮力方法是设置一个频繁保存的计时器.然后,由保存触发的方法将吞下所有验证错误,以免打扰用户.只有在退出时,用户才会被安排数据以便保存.恕我直言,那种方法很臭.
所以我在想,必须有办法以某种方式将保存挂钩到类似NSEditor
协议之类的东西.每次用户(或控制器)完成编辑数据时,应以某种方式通知应用程序委托触发保存操作.事情是我不知道在哪里看.
我认为对于更复杂的操作,可能需要进行一些交叉验证,我会向用户提供与专用相关的接口位NSManagedObjectContext
.
我曾经认为文件夹需要有一个扩展名,以便Finder将它们识别为包.该扩展将在拥有应用程序的Info.plist中声明.
显然还有另一种更优雅的方式,但我无法弄清楚它是如何完成的.
例如,Finder将iPhoto图库视为包.但它没有延伸.mdls显示它确实在内容类型树中有"com.apple.package".实际内容类型是动态分配的.
iPhoto如何创建这样的目录?
当我按下NSRuleEditor中某行的"+"按钮时,会创建一个新行.如何影响该行使用的标准.
似乎NSRuleEditor默认从可能值列表中顺序选择第一个标准.我宁愿让新行匹配单击"+"的行.
我正在查看第三方进程拥有的 SQLite 数据库。它看起来是锁定的并且有一个 *-journal 文件。我不知道的是,锁是共享的还是独占的。
我希望从数据库中读取,即使它当前被其他进程锁定。我只会从数据库中读取。
目前我失败了。只要第三方进程正在运行,我就会收到 SQLITE_BUSY 返回码。
我看过 sqlite3_busy_handler,但这似乎不是解决方案。据我了解,只允许实现重试机制。它似乎没有提供一种方法来忽略数据库已锁定的事实。
如何强制 SQLite 从该数据库中读取数据?
顺便说一句,我目前正在使用 FMDatabase API 包装器。这不使用 sqlite3_busy_handler。只要得到 SQLITE_BUSY 返回码,它就会无限循环。
我有一个 NSTextView,我想使用查找栏。文本可以选择,但不可编辑。我以编程方式更改文本视图中的文本。
当 NSTextFinder 在文本更改后尝试选择下一个匹配项时,此设置可能会崩溃。NSTextFinder 似乎保留了增量匹配的过时范围。
我尝试了几种更改文本的方法:
[textView setString:@""];
Run Code Online (Sandbox Code Playgroud)
或者
NSTextStorage *newStorage = [[NSTextStorage alloc] initWithString:@""];
[textView.layoutManager replaceTextStorage:newStorage];
Run Code Online (Sandbox Code Playgroud)
或者
[textView.textStorage beginEditing];
[textView.textStorage setAttributedString:[[NSAttributedString alloc] initWithString:@""]];
[textView.textStorage endEditing];
Run Code Online (Sandbox Code Playgroud)
仅replaceTextStorage:调用-[NSTextFinder noteClientStringWillChange]。以上都不会调用 -[NSTextFinder cancelFindIndicator]。
即使 NSTextFinder 通知了文本更改,它也可能在查找下一个(命令-G)时崩溃。
我还尝试按照这篇文章中的建议创建自己的 NSTextFinder 实例。即使 NSTextView 没有实现 NSTextFinderClient 协议,它也能正常工作并失败,就像没有 NSTextFinder 实例一样。
将 NSTextFinder 与 NSTextView 一起使用的正确方法是什么?
我知道卷的UUID - 如"磁盘工具"中所示.
如何获得有关卷的其他信息?最重要的是,我想知道它的挂载点.
查看/ etc/fstab并不能解决问题.这不会列出根卷.我至少需要弄清楚根卷的UUID来验证我已知的UUID.
cocoa ×6
objective-c ×2
c ×1
core-data ×1
core-image ×1
macos ×1
macos-carbon ×1
nstextview ×1
sqlite ×1