我的视图中有一个NSTextView可以正常工作,但是当我显示NSAlert并关闭它时,它变得不可编辑(文本仍然可以选择)。 NSAlert是一个保存/取消警报,当用户选择保存时更新textView的字符串,当用户按下取消时字符串不会更新。在这两种情况下,textView都是不可编辑的,当用户进行更改并想要更改tableView选择时会显示警报。
感觉就像textView拒绝第一响应者,但是当在控制台中打破并检查其“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")
}
})
我试过的东西:
我长期坚持这一点,非常感谢任何帮助, 感谢
答案 0 :(得分:1)
经过长时间的调试,我发现这条线是打破文本区的那条线,我会在网上留下这个帖子以防万一其他人偶然发现这个奇怪的问题
window?.styleMask = NSFullSizeContentViewWindowMask
删除此行可解决问题。