Как реализовать кнопку закрытия X для листа формы модального вида

Я понимаю, что уже есть вопросы, которые задают то же самое, однако мне все еще не удалось реализовать кнопку «X» в углу модального представления листа формы.

Прекрасный пример того, что я пытаюсь реализовать, можно увидеть на скриншоте ЗДЕСЬ . (Был бы признателен, если бы кто-нибудь из> = 10 человек помог мне отредактировать этот пост, разместив это изображение здесь. Спасибо).

В тщетной попытке я попытался реализовать UIButton в viewDidLoad класса View Controller модального представления с рамкой CGRectMake(-10, -10, 20, 20), но, как и ожидалось, кнопка не «зависает» в верхнем левом углу модального представления, как предполагалось.

Некоторые из вопросов, на которые я наткнулся:

У меня уже работает «Нажмите за пределами модального представления, чтобы закрыть», и теперь мне нужна небольшая кнопка закрытия вверху ради HCI. Спасибо за уделенное время! Ваше здоровье!


person Ryan    schedule 17.10.2013    source источник


Ответы (2)


Не видя вашего кода, трудно предложить помощь на уровне кода, но я считаю, что вы можете найти свой ответ в кодах этого исходного кода github управления какао. У него есть модальное всплывающее окно и кнопка x, чтобы его закрыть. Вы можете добавить к нему любой тип пользовательского интерфейса. Что бы ни стоило, вот ссылка на исходный код:

https://github.com/rnystrom/RNBlurModalView

person Adrian P    schedule 17.10.2013

У меня была аналогичная проблема с попыткой выяснить, как закрыть представление листа. Из того, что я прочитал, лист должен быть отклонен представлением, которое его отображало. Контроллер представления имеет ссылку на представление представления, поэтому представление листа запрашивает у своего родителя отклонение листа (себя).

После реализации с помощью кнопки я нашел информацию об cancelOperation, которая захватывает esc или 'command-.' и оба работают.

Я не уверен, что это правильная практика, но она работает (пока) для меня.

class PopupSheet : NSViewController {
    // dismiss if ok button is clicked
    @IBAction func buttonClicked(_ sender: Any?) {
        self.presentingViewController?.dismiss(self)
    }
    // dismiss if esc or command-. is pressed
    override func cancelOperation(_ sender: Any?) {
        self.presentingViewController?.dismiss(self)
    }
}
person KevinO    schedule 04.04.2019