В моем коде у меня есть лист. Внутри есть две кнопки, каждая из которых возвращает важное значение; однако лист можно закрыть с помощью Escape. Итак, я хочу выполнить действие при нажатии этой клавиши, чтобы в каждом случае вернуть значение.
Вот мой код: компилятор зависает и не собирает мое приложение...
VStack {
// some content
}
.sheet(isPresented: $showSheet, content: {
// some content
})
.onKeyPress { key in
if key == .escape {
NSApplication.shared.reply(toApplicationShouldTerminate: false)
}
}
Та же проблема:
VStack {
// some content
}
.sheet(isPresented: $showSheet, content: {
VStack {
// some content
}
.onKeyPress { key in
if key == .escape {
NSApplication.shared.reply(toApplicationShouldTerminate: false)
}
}
})
Вы хоть представляете, что не так в моем коде?
Это важная переменная, важная для меня, но она не связана с моей проблемой...





Нажатие клавиши escape на листе — это то же самое, что закрытие листа, поэтому реализуйте замыкание/функцию для параметра onDismiss.
.sheet(isPresented: $showSheet, onDismiss: {
// handle dismiss
}, content: {
// some content
})
Это такой хороший пример философии SwiftUI. «Обработка нажатия клавиши Escape» — это деталь реализации, но инфраструктура представляет ее как более абстрактный термин «абстрактный», который может означать пролистывание на мобильных устройствах.
Что вы подразумеваете под «возвращением существенного значения»? Можете ли вы показать больше кода листа, чтобы показать, как вы «возвращаете значение»?