На мой взгляд, у меня есть NSTextView, который работает так, как должен, но когда я показываю NSAlert и закрываю его, он становится недоступным для редактирования (текст все еще можно выбрать). NSAlert - это предупреждение о сохранении / отмене, которое обновляет строку textView, когда пользователь выбирает сохранение, строка не обновляется, когда пользователь нажимает отмену. В обоих случаях textView нельзя было редактировать, предупреждение отображается, когда пользователь внес изменения и хочет изменить выбор tableView.
Похоже, что textView отказывается от первого респондента, но при взломе и проверке в консоли его «истинного» я также проверил некоторые другие значения после того, как представление стало недоступным для редактирования:
- isEditable было True
- isSelectable был True
- canBecomeKeyView был True
- acceptptsFirstResponder был True
- acceptptsTouchEvents был False, проверено True, но не сработало
Видео, то же самое при запуске всплывающего окна при изменении выбора представления таблицы и кнопки: video
Мой всплывающий код
func dialogOKCancel(question: String, text: String) -> Bool {
let myPopup: NSAlert = NSAlert()
myPopup.messageText = question
myPopup.informativeText = text
myPopup.alertStyle = NSAlertStyle.warning
myPopup.addButton(withTitle: "OK")
myPopup.addButton(withTitle: "Cancel")
return myPopup.runModal() == NSAlertFirstButtonReturn
}
let answer = self.dialogOKCancel(question: "Ok?", text: "Choose your answer.")
также пробовал:
let a = NSAlert()
a.messageText = "Delete the document?"
a.informativeText = "Are you sure you would like to delete the document?"
a.addButton(withTitle: "Delete")
a.addButton(withTitle: "Cancel")
a.alertStyle = NSAlertStyle.critical
a.beginSheetModal(for: self.view.window!, completionHandler: { (modalResponse) -> Void in
if modalResponse == NSAlertFirstButtonReturn {
print("Document deleted")
}
})
Что я пробовал:
- Удалите все обновления textView, показывая, что предупреждение по-прежнему нарушает его
- Перетаскивание нового «нетронутого» textView в мою раскадровку, но теперь оба textView стали недоступными для редактирования
- Я попытался показать NSAlert при нажатии кнопки, а не при изменении выбора tableView. Здесь textView, который я редактировал, остается первым респондентом, но как только я покидаю textView, его снова нельзя редактировать.
- Я пробовал запускать только анимацию вместо NSAlert, здесь textView продолжает работать
- Я попытался заменить NSAlert на оверлей View с заголовком / описанием / кнопками. при отображении этого диалогового окна textView также стал недоступным для редактирования
Я застрял на этом надолго, и любая помощь приветствуется, спасибо