cocoa - 我应该在 Mac 首选项面板中包含哪些元素?

标签 cocoa macos user-interface preferences

我对 Mac 程序的首选项窗口有疑问。我有一个带有基于 CoreData 后端的应用程序。我的程序包含一项功能,允许用户将数据库切换为不同的数据库。我不希望用户经常这样做——也许一年一次或两次。

现在,用户可以调整的许多选项都存储在数据库中。这些选项需要在每次使用新数据库时配置一次,因为它们是特定于数据库本身的。

Apple Human Interface Guidelines on Preferences说明这一点:

As much as possible, ensure that users rarely need to reset preferences. Ideally, preferences include settings that users might want to change only once. If there are settings users might want to change every time they open your app, or every time they perform a certain task, don’t put these settings in preferences. Instead, you could use a menu item or a control in a panel to gives user modeless access to these settings.

我的问题是:我的数据库级设置对于首选项窗口是否有效? “一年一次或两次”算“很少”吗?如果没有,创建第二个面板(其中许多 Pane 由 NSToolbar 控制)是否有任何缺点,该面板看起来就像首选项面板,但可以从不同的地方访问菜单项(例如“数据库首选项”)?

最佳答案

我总是在各种应用程序的“首选项”下看到数据库级设置(我想到了 1Password 和 MacJournal)。因此,首选项通常包含数据库级设置和 plist 文件中的“实际”首选项。前者(数据库级别设置)绝对重要,是实际数据。后者(plist 文件)并不那么重要,丢失这些数据不会造成太大的伤害,因为它只是用户可以轻松手动恢复的简单设置。

另一方面,我认为将两者分开并没有什么问题,特别是如果您的应用程序是多窗口(基于文档)应用程序,可以同时打开多个数据库。

但我确实认为最简单的方法是将其全部放入“首选项”中。这可能是您应该做的,除非您有充分的理由不这样做。

直接回答您的一些问题:

  1. 我的数据库级设置是否适用于首选项窗口? — 是的,我认为是的。许多应用程序(例如 1Password 和 MacJournal)也这样做。
  2. “一年一次或两次”算“很少”吗? ——是的。
  3. 创建第二个面板有什么缺点吗? — 如果你有充分的理由将两者分开,我认为这没有什么问题。

只是我的两分钱。

关于cocoa - 我应该在 Mac 首选项面板中包含哪些元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768579/

相关文章:

objective-c - 放大 NSView

macos - 自定义 View ,Macos,Swift,让我的 EmptyView = self.moveView(frame : viewRect) viewRect cannot be found

ios - 重用dispatch_get_main_queue()/dispatch_get_global_queue()的结果是否安全?

python - 从 MacOS 中删除 Anaconda 的问题

objective-c - 在非主线程中运行 Cocoa GUI

python - 事件期间GUI没有变化吗? (Python3.6、PyQt5)

cocoa - 2014 年,有哪些 AppKit 组件用于构建现代 Mac 基于文档的应用程序?

objective-c - 从 `username` 给出的 `SecKeychainItemRef` 中提取 `SecKeychainFindGenericPassword` ?

oracle - 在 Mac 上卸载 Sql Developer

c++ - 打开文件以在 C++ 中显示内容