Как да създадете действие за UIReturnKeyType.Done в UITextView в xamarin iOS

Опитвам се да променя бутона за връщане на клавиатурата UITextView на бутон Готово.

Трябва да затворя клавиатурата, когато натисна бутона Готово.

Създадох UITextView и промених бутона за връщане на бутона Готово.

Това е моят код

PhotoTitle = new UITextView
{
    TranslatesAutoresizingMaskIntoConstraints = false, Editable = true,               AccessibilityIdentifier = "PhotoTitle", 
ReturnKeyType = UIReturnKeyType.Done
}

Клавиатурата показва бутона Готово успешно. ако го натисна, просто се държи като бутон за връщане.

И не мога да намеря събитие за частици за пожар, когато докосна бутона Готово.


person Chandu Ranwala    schedule 13.06.2019    source източник


Отговори (2)


Преди всичко трябва да запомните, че UITexiView е UI widget с възможност за превъртане. Така че, когато промените клавиша Return на клавиатурата по подразбиране на бутона Done, вие криете възможността за преминаване на нов ред във вашия UITextView. Ето защо моето предложение е, ако използвате UITextView и имате нужда от бутон Готово, като запазите клавиатурата по подразбиране, трябва да добавите UIToolBar в горната част на клавиатурата, където можете да поставите Готово< /em> бутон.

Тъй като не съм запознат с истинската ви нужда, която може да не се нуждае от преминаване на нов ред и просто трябва да излезете от клавиатурата, когато потребителят докосне бутона Назад/Готово, ето как трябва да го направите.

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        TextView.WeakDelegate = this;
    }

    [Export("textView:shouldChangeTextInRange:replacementText:")]
    public bool ShouldChangeText(UITextView textView, NSRange range, string text) 
    {
        if (text.Equals("\n"))
        {
            TextView.ResignFirstResponder();
            return false;
        }

        return true;
    }
person AnujAroshA    schedule 14.06.2019

Това е доста лесно всъщност да се абонирате за събитието ShouldReturn на UITextField с делегат или анонимен метод, който ще извика ResignFirstResponder на полето.

Можете да проверите това примерен проект, който показва как да го направите

this.txtDefault.ShouldReturn += (textField) => {
textField.ResignFirstResponder();
return true;
};
person FreakyAli    schedule 13.06.2019
comment
Не можем ли да направим това с помощта на UITextView - person Chandu Ranwala; 14.06.2019
comment
Предполагам, че и двете са добре, ако събитието е налице - person FreakyAli; 14.06.2019
comment
събитие не присъства с UITextView, така че има ли друг начин да направите това с UITextView? - person Chandu Ranwala; 14.06.2019
comment
Проверихте ли примера в Github? - person FreakyAli; 14.06.2019