#swift #xcode #macos #sprite-kit
#swift #xcode #macos #sprite-kit
Вопрос:
Я создал протокол с именем Alertable, который я использую в своем классе GameScene: SKScene, Alertable { Я получил его для работы с iOS, но не с macOS
extension Alertable where Self: SKScene {
func showAlert(withTitle title: String, message: String) {
#if os(iOS) || os(tvOS)
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .cancel) { _ in }
alertController.addAction(okAction)
view?.window?.rootViewController?.present(alertController, animated: true)
#else // MacOS version
let alert = NSAlert()
alert.messageText = title
alert.informativeText = message
alert.addButton(withTitle: "OK")
alert.addButton(withTitle: "Cancel")
//alert.runModal() == .alertFirstButtonReturn
//view?.window?.contentViewController?.present(alert)
#endif
}
Комментарии:
1. Раскомментировать
//alert.runModal() == .alertFirstButtonReturn
2. Я закомментировал его, потому что он не работает, потому что он скрыт представлением SKScene. вот почему в версии iOS я должен настроить таргетинг на RootViewController, чтобы я мог видеть предупреждение. похоже, не получается сделать то же самое с macOS