【发布时间】:2017-02-01 06:03:00
【问题描述】:
我最近升级到 Xcode 8 并将我的代码转换为 Swift 3。我正在制作一个自定义键盘(扩展),在 iOS 9 之前它工作得非常好,但我在 iOS 10 中遇到了几个问题。
- 自定义键盘的容器应用包含一个按钮,可将用户引导至键盘设置以添加键盘
问题:此按钮单击在 iOS 10 中不起作用,即用户未定向到设置。我已经在我的项目中配置了 URL 方案并尝试了以下代码:
@IBAction func btnGetStarted(_ sender: AnyObject) {
let settingsUrl = URL(string: UIApplicationOpenSettingsURLString)
if let url = settingsUrl {
UIApplication.shared.openURL(url)
}
}
也试过了:
@IBAction func btnGetStarted(_ sender: AnyObject) {
if let settingsURL = URL(string:"prefs:root=General&path=Keyboard/KEYBOARDS") {
UIApplication.shared.openURL(settingsURL)
}
}
- 自定义键盘还包含表情符号图像。用户需要在设置中启用“允许访问”才能使用表情符号图像。如果用户未启用“允许访问”,则他无法使用表情符号图像。如果未启用“允许访问”并且用户尝试单击表情符号,则会弹出一个 toast,告诉用户转到设置并启用“允许访问”。
问题:在 iOS 10 中运行应用时不会弹出此 toast
吐司代码:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){
let pbWrapped: UIPasteboard? = UIPasteboard.general
if let pb = pbWrapped {
if currentKeyboard == XXXXXX.emoji {
if let data = UIImagePNGRepresentation(dataEmoji[(indexPath as NSIndexPath).row]) {
pb.setData(data, forPasteboardType: "public.png")
self.makeToast(pasteMessage, duration: 3.0, position: .center)
}
}
} else {
var style = ToastStyle()
style.messageColor = UIColor.red
style.messageAlignment = .center
//style.backgroundColor = UIColor.whiteColor()
self.makeToast("To really enjoy the keyboard, please Allow Full Access in the settings application.", duration: 8.0, position: .center, title: nil, image: UIImage(named: "toast.png"), style: style, completion: nil)
}
}
我确实在 stackoverflow 上查看了一些解决方案,但没有一个对我有用,正如我之前所说,我的应用程序在除 iOS 10 之外的所有版本上都能正常运行。 请问有人可以帮我吗?
【问题讨论】:
-
@Rock 正如我上面所写的,我已经尝试过了,对我有用
-
@PersianBlue:你有答案了吗,我也面临同样的问题。
-
@Raj_216 不,我还没有找到解决方案..
-
@PersianBlue:好的,一旦我得到它,我会发布解决方案,如果你在我之前找到它,那么请做同样的事情。
标签: swift3 ios10 emoji custom-keyboard