如果单个视图中有两个按钮,则无法通过INUIAddVoiceShortcutButton设置单独的Siri快捷方式短语

时间:2018-09-14 09:05:13

标签: ios12 nsuseractivity swift4.2 sirishortcuts

如果单个视图中有两个按钮,则无法通过INUIAddVoiceShortcutButton设置单独的Siri快捷方式短语。一旦我为一个按钮录制了短语,另一个按钮就会与第一个按钮一起变为编辑模式。我该如何解决这个问题?

Screen before recording phrase Screen after recording phrase

func firstShortcut() {

    let activity1 = NSUserActivity(activityType: "com.test.first")
    activity1.title = "Log first activity"
    activity1.isEligibleForSearch = true
    activity1.suggestedInvocationPhrase = "Log my first activity"
    activity1.isEligibleForPrediction = true
    activity1.persistentIdentifier = "com.test.first"
    view.userActivity = activity1
    activity1.becomeCurrent()

    let addShortcutButton = INUIAddVoiceShortcutButton(style: .whiteOutline)
    addShortcutButton.shortcut = INShortcut(userActivity: activity1)
    addShortcutButton.delegate = self
    addShortcutButton.translatesAutoresizingMaskIntoConstraints = false
    addSiriShortcutView1.addSubview(addShortcutButton)
    addSiriShortcutView1.centerXAnchor.constraint(equalTo: addShortcutButton.centerXAnchor).isActive = true
    addSiriShortcutView1.centerYAnchor.constraint(equalTo: addShortcutButton.centerYAnchor).isActive = true
}

func secondShortcut() {

    let activity2 = NSUserActivity(activityType: "com.test.second")
    activity2.title = "Log second activity"
    activity2.isEligibleForSearch = true
    activity2.suggestedInvocationPhrase = "Log my second activity"
    activity2.isEligibleForPrediction = true
    activity2.persistentIdentifier = "com.test.second"
    view.userActivity = activity2
    activity2.becomeCurrent()

    let addShortcutButton = INUIAddVoiceShortcutButton(style: .whiteOutline)
    addShortcutButton.shortcut = INShortcut(userActivity: activity2)
    addShortcutButton.delegate = self
    addShortcutButton.translatesAutoresizingMaskIntoConstraints = false
    addSiriShortcutView2.addSubview(addShortcutButton)
    addSiriShortcutView2.centerXAnchor.constraint(equalTo: addShortcutButton.centerXAnchor).isActive = true
    addSiriShortcutView2.centerYAnchor.constraint(equalTo: addShortcutButton.centerYAnchor).isActive = true
}

0 个答案:

没有答案