问题标签 [nspreferencepane]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - 将 Swift 与 OS X Preference Pane 插件一起使用
我想使用 Swift 为 System Preferences 应用程序构建一个 OS X Preference Pane 插件,但我无法让它工作。
单击“下一步”后,Xcode 模板不提供选择 Swift 作为语言的选项,而是自动在 Objective-C 中创建项目。
无需添加任何代码或执行任何其他操作,项目即可成功构建。如果您右键单击产品并选择“在外部编辑器中打开”,系统首选项将成功安装并加载首选项窗格。
它只是工作!
很好,但是现在,我想使用 Swift 添加一个新的 Cocoa 子类。
接受默认值,并允许它创建桥接头。
现在,退出系统偏好设置,不添加任何代码,重建项目。和以前一样,右键单击产品并“在外部编辑器中打开”。
System Preferences 将确认替换首选项窗格,并将安装它,但随后无法加载。
如果您在 Finder 中显示构建的产品,除了 .prefPane 插件之外,还有一个 .swiftmodule 文件夹。
我猜在构建阶段或构建设置中缺少一些负责将 .swiftmodule 与捆绑包的其余部分合并的东西,但无法弄清楚。
添加一些使用新类的代码后,需要导入 Swift 项目伞头文件(“Prax-Swift.h”)以使项目编译,但导入伞头文件并不能解决此问题。
我还尝试删除 Prax.h 和 Prax.m 并在 Swift 中简单地实现 NSPreferencePane 子类。和以前一样,项目构建并安装,但系统偏好设置无法加载它。
对不起,如果我在这个问题中使用了太多图片;这似乎是解释问题并使其易于重现的最清晰方法。可能有一个简单的解决方案。有任何想法吗?
macos - Defining an anchor name within my preference pane
I would like enable AppleScript to reveal a particular tab within a custom preference pane I am developing, so that this works:
I cannot find anywhere how my preference pane would declare or specify the "Foo"
anchor or associate that with any particular tab view item.
swift - PreferencePane 上的 Swift,带有 Cocoa 绑定;我究竟做错了什么?
我正在尝试克隆 RCDefaultApp,因为它是一个很棒的应用程序,遗憾的是 Sierra 杀死了它。
大部分后端已完成;我正在试验界面,一定有一些(或许多事情)我做错了。我已经尝试过几个不同的教程,或多或少是信的,但我无法重现预期的结果。
这是我的偏好窗格的文件所有者:
最初,我试图将数据转储到 NSBrowser 中,但我绝对无法让它工作;总是在运行时因“无法识别的选择器发送到实例......”错误而崩溃,即使我确定一切都正确连接。
包装的属性在那里,因为浏览器希望我绑定到 NSObject。
然后我尝试使用 NSTableView。如果我尝试绑定到 tableview 本身,我会遇到同样的问题。如果我尝试绑定到 Column,它实际上似乎可以工作(尽管由于某种原因它坚持我需要使用 NSString;甚至 String 都不能工作)除了它看起来像这样:
swift - 为什么我的 Swift 支持的 Preference Pane 无法加载?
我正在尝试为我的应用创建自定义系统偏好设置窗格。但是,当我尝试加载它进行测试时,我在控制台中得到了这个:
似乎 AppKit 的 Swift 包装器无法加载......我确定我需要的东西。那么这里发生了什么,我该如何解决呢?
system-preferences - 为什么我的 Preference Pane 似乎认为它总是错误的架构?
这已经很好地工作了很长时间。据我所知,我没有改变任何东西......但我不是 100% 确定。我所知道的是,现在我的首选项窗格在我尝试打开它时会显示此错误:
当我按 OK 时,它会重新启动并显示相同的对话框。这继续令人作呕。
我检查了二进制文件,file
它确认它是一个 64 位可执行文件:
这是……苦乐参半。我可以在网上找到的所有建议都说这个错误意味着必须在 32 位版本的系统偏好设置中加载 32 位偏好设置窗格,据我所知,这不是导致这种症状的原因。
我查看了 Console.app 并在单击首选项窗格后立即看到了这一点:
所以它认为我突然使用了错误的架构......?这里发生了什么?
nspreferencepane - NSRequiresAquaSystemAppearance 和首选窗格
我有一个系统偏好设置窗格,在 10.14 中运行时,它始终以灯光外观模式打开。在早期系统中编译的普通应用程序可以通过包含一个 plist 参数来使用暗模式:NSRequiresAquaSystemAppearance = NO。
但是,当我在 pref 窗格中将此键添加到我的 Info.plist 时,什么也没有发生。
当暗模式在 10.14 上处于活动状态时,如何在暗模式下打开自定义系统偏好设置窗格?Apple 的默认窗格可以,并且这些 plist 中似乎没有启用它的键。
xcode - 带有 10.15 和系统完整性保护的调试系统首选项窗格
过去,我已经能够通过自签名系统偏好设置应用程序的副本,并将其设置为 Xcode 中的运行目标,在系统偏好设置中运行/调试自行开发的偏好设置窗格。
一个符号链接放置在 ~/Library/PreferencePanes 中,它指向由 Xcode 构建的输出 prefPane 并且一切正常……至少它曾经在 10.11 到 10.14 下使用。
请参阅:使用 10.11 和系统完整性保护的调试系统首选项窗格
在 10.15 下,这会中断。虽然 prefPane 正确加载了真实的(Apple 签名的)系统偏好设置应用程序,但当我尝试在系统偏好设置的自签名副本中运行我的 prefPane 时,我得到“无法加载偏好设置窗格”。尝试加载任何 Apple 内置的首选面板时也会发生同样的事情。
我都试过了:
和
控制台中不会产生任何错误。
我的猜测是,在加载过程的某个地方,它正在检查系统偏好设置主机应用程序是否由 Apple 签名。如果我尝试使用真正的系统偏好设置应用程序作为调试目标,我会收到系统完整性保护错误。
有没有像 10.11 到 10.14 那样禁用 SIP 的方法来做到这一点?
cocoa - 10.15 中的 PrefPane 不会重新打开外部窗口
My Pref Pane 为每个显示打开一个窗口,类似于 Displays PrefPane 的工作方式。当我第一次启动时,操作系统会调用我mainViewDidLoad
使用initWithWindowNibName
. 这工作正常。
然后在 中willUnselect
,我调用[window orderOut:self];
每个外部窗口并且它们正确隐藏。例如,如果用户从我的 PrefPane 切换到 Sound 或 Network PrefPane,就会发生这种情况。
当他们回到我的 PrefPane 时,我会willSelect
打电话给:
此调用不再有效(它适用于 10.14.6 及更早版本的所有版本,并且可能适用于 10.15 的早期版本,但它肯定在 10.15.6 中损坏)。
我尝试使用其他方法来隐藏/显示窗口,包括[window setIsVisible:]
但没有任何方法可以恢复窗口。
我认为这可能与此博客讨论的内容有关:
https://www.noodlesoft.com/blog/2019/08/28/preference-panes-and-catalina/
有没有人看到这个或知道修复它?