Я создаю расширение приложения Safari. Расширение включает всплывающее окно, которое появляется при нажатии на элемент панели расширения. Всплывающее окно содержит несколько кнопок, связанных с действиями, которые может выполнять пользователь. Я вижу popover, но popover не содержит контента. У меня тоже есть вид с авто макетом.
И у меня нет сообщения об ошибке.
class SafariExtensionHandler: SFSafariExtensionHandler
override func validateToolbarItem(in window: SFSafariWindow, validationHandler: @escaping ((Bool, String) -> Void)) {
validationHandler(true, "")
}
override func popoverViewController() -> SFSafariExtensionViewController {
return SafariExtensionViewController.shared
}
override func popoverWillShow(in window: SFSafariWindow) {
let unauthorizedId = UserDefaults.standard.string(forKey: "unauthorizedId")
let trelloToken = UserDefaults.standard.string(forKey: "token")
window.getActiveTab { (activeTab) in
activeTab?.getActivePage(completionHandler: { (activePage) in
activePage?.getPropertiesWithCompletionHandler( { (properties) in
SafariExtensionViewController.shared.onPopoverVisible(token: token, unauthorizedId: unauthorizedId)
})
})
}
}
class SafariExtensionViewController: SFSafariExtensionViewController {
@IBOutlet weak var signInBtn: NSButton!
@IBOutlet weak var goBtn: NSButton!
static let shared = SafariExtensionViewController()
private var domain: String = "https://google.com"
override func viewDidLoad() {
super.viewDidLoad()
}
func onPopoverVisible(token: String?, unauthorizedId: String?) {
NSLog("safaripl pop \(String(describing: unauthorizedId)) \(String(describing: token))")
if (token == nil && unauthorizedId == nil ) {
self.signInBtn.isHidden = false
self.goBtn.isHidden = true
} else if (token == nil && unauthorizedId != nil) {
self.signInBtn.isHidden = true
self.goBtn.isHidden = false
}
}
@IBAction func signInBtnClick(_ sender: Any) {
Util.openUrlInSafari(url: "https://google.com")
}
@IBAction func goBtnClick(_ sender: Any) {
Util.openUrlInSafari(url: "https://google.com")
}
}