在iPhone 6S或iPhone 6S Plus模拟器上模拟强制触摸/ 3D触摸


99

我正在尝试在iPhone 6S或iPhone 6S Plus模拟器上使用Xcode 7 GM模拟强制触摸。特别是,我试图模拟在实现应用程序快捷方式的测试应用程序图标上的强制触摸。

让我知道是否有解决方案可以模拟此问题,我尝试了Watch模拟器用来模拟强制触摸的长按,但由于iPhone将其捕获为长按手势而无法使用。

更新:我从Apple下载了ViewControllerPreview示例代码。运行他们的示例应用程序,我看到模拟器虽然是iPhone 6s,但不支持3D /强制触摸功能。我仍然不确定如果我要使用带有强制触摸触控板的MacBook,是否支持该功能。

在此处输入图片说明

编辑:拥有带强制触摸触控板的macbook的人是否可以尝试使用触控板上的强制触摸来模拟iPhone 6s或6s Plus模拟器上的3D触摸?我的理论是,您也许可以使用新MacBook上的强制触摸触控板在新iPhone模拟器上模拟3D触摸。如果您尝试添加评论,请注明结果,我可以更新该帖子。

EDIT2:似乎新型Macbook Pro上的Force Touch触控板无济于事。


1
您是否不必使用Xcode 7.1 beta?
Jacopo Penzo 2015年

使用7.1B运行时,该选项被禁用
dezinezync 2015年

1
看起来好像有雷达在外面。openradar.appspot.com/22635686
atreat 2015年

8
强制触摸2015 Macbook Pro无效
。.– Jadar

您也可以考虑使用
felixwcf

Answers:


74

在这里说!在页面的底部....

开发环境

Xcode 7支持3D Touch开发。Xcode的所有调试功能都可用于实现新功能。

请记住以下几点:

使用Xcode 7.0,您必须在支持3D Touch的设备上进行开发。Xcode 7.0中的模拟器不支持3D Touch。

使用Xcode 7.0,您必须在代码中实现窥视和弹出视图控制器。Xcode 7.0中的Interface Builder不提供图形支持来配置3D Touch的视图控制器或转换。

确保在启用和禁用3D Touch的情况下测试您的应用,确保所有用户都可以使用所有功能。在3D Touch设备上,可以在“设置”>“常规”>“辅助功能”>“ 3D Touch”中禁用“ 3D Touch”。

因此,不幸的是,看起来我们需要动手操作实际的设备。:-(

编辑.....

从Xcode 7.3开始,如果MacBook的触控板支持强制触摸,则有一种方法可以执行此操作。参见@iPrabu的回答。


1
仅供参考,我在答案中链接了一个工具,可让您模拟力度触摸以显示“快速操作”菜单。
Nicolas S

1
奇怪的是,如果您运行6S或6S Plus仿真器,则启用了硬件选项“强制触摸压力”。在所有其他模拟器上则不是。因此,看起来他们参与了在模拟器中实施3D触摸的过程,但随后放弃了。是时候购买新手机了……
丹·洛尼2015年

2
现在,链接页面显示Xcode 7.1不支持3D Touch。
丹·里斯

2
作为质量检查开发人员,这很糟糕。
乔·苏斯尼克

1
仅当您具有带有强制触摸的触控板时,Xcode 7.3才支持@LucasAzzopardi 3D触摸
Stephen

64

对于正在开发快速操作(应用程序快捷方式)的用户,您可以使用此脚本,使您可以在模拟器上模拟对应用程序的深度按压。

https://github.com/DeskConnect/SBShortcutMenuSimulator

这是屏幕截图: 在此处输入图片说明

对于那些首先考虑如何添加操作的用户,有两个选项:静态和动态。您只能设置4个选项,它将首先显示所有静态选项,如果有空间,则显示动态选项。

这是添加静态快捷方式的方法。这很简单,只需在主菜单上添加一些键Info.plist

在此示例中,我将添加两个静态选项,一个带有“默认搜索”图标,另一个带有来自资产目录的自定义图标。

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Add Event (with custom icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.addevent</string>
        <key>UIApplicationShortcutItemIconFile</key>
        <string>custom-icon-from-asset-catalog</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Search Event (with default icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.searchevents</string>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeSearch</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
</array>

1
太好了,非常感谢!您是否设法模拟了“偷看”和“流行”功能?
Alexey 2015年

@Alexey还不是,但是至少您现在可以在真实设备上进行测试了。模拟器很可能会在以下更新中正常运行,菜单选项已经存在。
Nicolas S

我无法显示快捷方式项目,您能帮我吗?
Dipen Chudasama

@DipenChudasama当然,我已经更新了答案,向您展示了如何添加快捷方式。
Nicolas S

1
对于9.1以上的iOS版本,请使用PoomSmart的fork:github.com/PoomSmart/SBShortcutMenuSimulator
thijsonline

42

使用Xcode 7.3,您可以在模拟器中测试3D触摸功能,但只有一个约束。(Xcode7.3发行说明参考)

您正在开发的机器(带有触控板的Macbook / Mac)应具有3D触摸功能。

您可以在iOS模拟器的“硬件”菜单下找到它。

来自Pavel Alexeev的评论:确保在“系统偏好设置”→“触控板”中启用“强制单击和触觉反馈”

在此处输入图片说明


5
确保在“系统偏好设置”→“触控板
Pavel Alexeev

1
作为一项附加要求,您必须使用最新的模拟器,我尝试了iOS 9.2几分钟,但没有成功
-9.3

8
搜索了几分钟,最终意识到我正在模拟使用iPhone 6而不是6s,这就是为什么按钮对我来说是灰色的
juliensaad

它仅适用于触控板。如果有人连接了常规鼠标(不确定魔术鼠标),那将无法正常工作

10

没有通过Xcode 7.0或Xcode 7.1 Beta的Simulator暴露iOS中的压力(例如:Peek&Pop)。压力触摸选项仅与那些版本的Simulator中的watchOS设备相关。如果您拥有Xcode 7.1 beta版,您会注意到菜单选项实际上被禁用。

借助Xcode 7.3和iOS 9.3及更高版本的模拟器运行时,您可以使用强制触摸触控板测试偷看/弹出功能。


如何计算是浅压还是深压?
Vaibhav Jhaveri

9

您可以在模拟器中启用3D Touch。感谢这个图书馆。

  • 添加后使用命令,控制和Shift键的组合可以启用3D Touch。

  • 不要忘记仅在调试环境中添加库。将其从发布环境中排除。


这是仅用于窥视和弹出还是用于家庭快捷方式?
RileyDev

是的,仅用于窥视和弹出。您可以将用于家庭快捷方式。
sanky009 '16

嗨,:S!当我长按并使用命令,控制和平移的组合时,Peek&Pop功能在Simulator 6s plus和Xcode 7.2上不起作用...您能告诉我为什么吗?谢谢
A. Trejo

@ sanky009:当我再按一下并使用命令,控制和移位的组合时,Peek&Pop函数在Simulator 6s plus和Xcode 7.2上
不起作用

2

对于“主屏幕快速操作”,我进行了以下操作:

  • 创建了一个UIMutableApplicationShortcutItem对象

  • 把它放到launchOptions中 UIApplicationLaunchOptionsShortcutItemKey

  • 就是这样

用户似乎在应用程序图标上进行了3d触摸。

    let shortcut = UIMutableApplicationShortcutItem(type: ShortcutIdentifier.Third.type,
        localizedTitle: "Title",
        localizedSubtitle: "Subtitle",
        icon: UIApplicationShortcutIcon(type: .Play), userInfo: [
        AppDelegate.applicationShortcutUserInfoIconKey: UIApplicationShortcutIconType.Play.rawValue
        ]
    )

    let launchOption = [
        "UIApplicationLaunchOptionsShortcutItemKey" : shortcut
    ]

    launchOptions = launchOption

(应用程序:didFinishLaunchingWithOptions :)


我做了类似的事情来测试它,但是最好做完整的测试。通过应用程序快捷方式可以进入应用程序的几种方法。一种方法是当应用程序在后台运行时,您可以通过应用程序快捷方式在前台运行。
Kris Gellci 2015年


1

正式地,Xcode 7.1支持3D触摸,但不支持模拟器。您需要具有实际的设备才能进行测试。检查Apple 文档的最后一段。

苹果文件

模拟器不支持3D触摸

但是,您可以使用第三方工具在模拟器上进行测试,例如上面的Nicolas S突出显示的工具。


0

较新的Macbook具有启用了强制触摸的触摸板。我认为这些选择只会在那起作用。


0

它适用于XCode 9和iphone 8模拟器。在您的Mac中,转到系统偏好设置->触控板->启用强制单击和触觉反馈

在此处输入图片说明

然后用力按iphone模拟器的任何部分以执行强制触摸操作。


我做到了,但仍然不起作用:( Xcode 9.4.1,iPhone X模拟器
。– Supertecnoboff

1
@Supertecnoboff您必须使用触控板而不是鼠标。它在Xcode 10上对我有效,但是在MacBook中使用Trackpad并不是很明显。当然,必须选中“强制点击和触觉反馈”。
阿里埃勒·博格齐耶维奇
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.