小编Mat*_*att的帖子

JavaScript是否有Map字面符号?

从ES6开始,JavaScript有一个合适的Map对象.我没有看到使用文字符号的方法,就像使用数组或对象一样.我错过了,还是不存在?

阵: var arr = ["Foo", "Bar"];

宾语: var obj = { foo: "Foo", bar: "Bar" };

地图:???

javascript ecmascript-6

38
推荐指数
3
解决办法
8603
查看次数

Carbon - 获取 CopySymbolicHotkeys 的标签?

This answer aboutCopySymbolicKeys()让您获得 OS X 中系统快捷方式的键盘组合,但有没有办法获得与这些组合关联的标签?

例如,我可以??DCopySymbolicKeys()但我想获得“打开/关闭 Dock Hiding”,它在“系统偏好设置”>“键盘”>“快捷方式”中的相关标签。

我认为这不太可能,但仍然充满希望。

macos macos-carbon

6
推荐指数
1
解决办法
124
查看次数

Mac - 如何以编程方式隐藏NSApplicationActivationPolicyAccessory或LSUIElement应用程序?

我正在编写一个基于Swift的小型Cocoa应用程序.它是一个单一的窗口应用程序,类似Spotlight/QuickSilver/Alfred.它被设置为NSApplicationActivationPolicyAccessory(docs)(虽然我尝试使用相同的东西LSUIElement,这是等效的).它通过全局热键激活.

一切都很好,除了当它处于活动状态时我无法隐藏应用程序NSRunningApplication.currentApplication().hide().

hide方法的文档说:" NO如果应用程序已经退出,该值的属性将是,或者是否为无法隐藏的类型." (强调我的),我NO回来了(虽然我实际上使用的是Swift,所以我得到了false).

我可以理解为什么一个NSApplicationActivationPolicyProhibited应用程序无法被隐藏,因为它永远不会被激活,但我也很困惑,这NSApplicationActivationPolicyAccessory也是如此.

我尝试了myWindow.orderOut(self);,但这只是隐藏窗口而不隐藏我的应用程序并将焦点返回到以前的应用程序.

我存储了对以前活动的应用程序的引用,所以如果需要,我可以再次手动激活该应用程序,但我希望有一个更简洁的方法来执行此操作.

macos cocoa

3
推荐指数
1
解决办法
1051
查看次数

脚本桥:结合 SBElementArrays

根据 Apple关于 Scripting Bridge performance文档,我们应该努力在 上使用批处理操作SBElementArrays,因为 Apple 事件调用很昂贵。

...只要有可能,您应该始终使用“批处理操作”数组方法之一,而不是枚举数组。这些方法避免了枚举的低效率,因为它们发送单个 Apple 事件而不是数组中的每个项目一个 Apple 事件。

我正在将 Scripting Bridge 与 System Events 应用程序一起使用,并且能够成功地从菜单中获取菜单项。它比我以前使用的 NSAppleScript 方法快得多。

我想要做的是将几个 SBElementArrays 组合在一起,每个 SBElementArrays 都包含来自不同菜单的菜单项。计划是然后运行批处理操作一次,而不是对每个菜单单独执行。

在我看来,这不应该那么复杂,尽管显然我在这方面的知识充其量是有限的。不幸的是,我遇到了严重的错误。

第一次尝试

如果我尝试创建一个空的 SBElementArray 元素,然后循环添加每组菜单项的菜单项,如下所示:

SBElementArray* menuItemCombinedArray = [[SBElementArray alloc] init];
for (SystemEventsMenuBarItem* menu in menuBar.menus) {
    menuItemCombinedArray = [[menuItemCombinedArray arrayByAddingObjectsFromArray:menu.menuItems] mutableCopy];
}

NSArray* menuItemNameArray = [menuItemCombinedArray arrayByApplyingSelector:@selector(name)];
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息[SBElementArray init] should never be used,这有点奇怪,因为 SBElementArray 是 NSMutableArray 的子类。

第二次尝试

接下来,我尝试了一种更黑客的方法,我为第一个菜单单独创建了 SBElementArray,然后循环遍历剩余的菜单并一次添加那些 SBObjects,如下所示:

SBElementArray* menus = …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c scripting-bridge

2
推荐指数
1
解决办法
319
查看次数

Postgres:更新所有表的主键序列

我已手动将生产中的所有数据导入到开发服务器,但出现此错误。我还在这里阅读了修复此问题的文章,但仅限于单个表。我已经导入了大约 10 个以上的表及其数据。这是错误:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "influences_pkey" DETAIL: Key (id)=(1) already exists. : INSERT INTO "influences" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"
Run Code Online (Sandbox Code Playgroud)

postgresql

1
推荐指数
1
解决办法
1363
查看次数