All Projects → brminnick → EntryCustomReturnPlugin

brminnick / EntryCustomReturnPlugin

Licence: MIT license
Xamarin.Forms Plugin to customize the Xamarin.Forms.Entry Keyboard Return Button

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to EntryCustomReturnPlugin

VersionTrackingPlugin
Version Tracking Plugin for Xamarin and Windows
Stars: ✭ 62 (-23.46%)
Mutual labels:  nuget, xamarin-forms, xamarin-ios, xamarin-android, xamarin-plugin
Plugin.audiorecorder
Audio Recorder plugin for Xamarin and Windows
Stars: ✭ 140 (+72.84%)
Mutual labels:  nuget, xamarin-forms, xamarin-ios, xamarin-android
Prototype.Forms.Controls
This sample app contains a random mixture of Xamarin/Xamarin.Forms controls, views, and functionality snippets that I've created.
Stars: ✭ 21 (-74.07%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android, xamarin-plugin
LaunchMapsPlugin
Launch External Maps Plugin for Xamarin and Windows
Stars: ✭ 49 (-39.51%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android, xamarin-plugin
XamarinClipboardPlugin
Cross Platform Clipboard access for Xamarin
Stars: ✭ 24 (-70.37%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android, xamarin-plugin
Improvexamarinbuildtimes
Tips and tricks on how to speed up the time it takes to compile a Xamarin app
Stars: ✭ 180 (+122.22%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Xamarin Playground
Random cool stuff I play around using Xamarin.. :3 Some of these cool projects I feature them on my blog, with step by step explanation. :) Don't forget to check it out. Go to: theconfuzedsourcecode.wordpress.com
Stars: ✭ 183 (+125.93%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
FilePicker
FilePicker for Xamarin.Forms
Stars: ✭ 14 (-82.72%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Fo Dicom
Fellow Oak DICOM for .NET, .NET Core, Universal Windows, Android, iOS, Mono and Unity
Stars: ✭ 674 (+732.1%)
Mutual labels:  nuget, xamarin-ios, xamarin-android
Xamarin Docs
Xamarin Documentation - public content repo
Stars: ✭ 136 (+67.9%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Xamarin Demos
This repository contains the Syncfusion Xamarin UI control’s samples and the guide to use them.
Stars: ✭ 218 (+169.14%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
TextMood
A Xamarin + IoT + Azure sample that detects the sentiment of incoming text messages, performs sentiment analysis on the text, and changes the color of a Philips Hue lightbulb
Stars: ✭ 52 (-35.8%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Microsoft.maui.graphics
Stars: ✭ 160 (+97.53%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Simpleauth
The Simplest way to Authenticate and make Rest API calls in .Net
Stars: ✭ 148 (+82.72%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Xamarin.forms.videoplayer
A Xamarin Forms control to render the native video player on every platform.
Stars: ✭ 140 (+72.84%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
Connectivityplugin
Connectivity Plugin for Xamarin and Windows
Stars: ✭ 253 (+212.35%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
HackerNews
A .NET MAUI app for displaying the top posts on Hacker News that demonstrates text sentiment analysis gathered using artificial intelligence
Stars: ✭ 184 (+127.16%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android
ButtonCirclePlugin
Circle Buttons with icon for your Xamarin.Forms Applications
Stars: ✭ 96 (+18.52%)
Mutual labels:  nuget, xamarin-forms, xamarin-plugin
32feet
Personal Area Networking for .NET
Stars: ✭ 395 (+387.65%)
Mutual labels:  nuget, xamarin-ios, xamarin-android
Xaml Code Experiences
A collection of the experiences I have collected during days of Xamarin and Wpf, while following the MVVM design pattern.
Stars: ✭ 114 (+40.74%)
Mutual labels:  xamarin-forms, xamarin-ios, xamarin-android

Custom Xamarin.Forms.Entry Keyboard Return Button

NuGet

This SDK was officially merged into Xamarin.Forms v3.1.0.

Because this SDK supports Xamarin.Forms v2.5.0.280555, I will continue to maintain it for teams who have not yet upgraded to Xamarin.Forms v3.1.0 or higher.

For developers using Xamarin.Forms 3.1.0 or higher, I recommend removing this NuGet package from your csproj and using the APIs included in Xamarin.Forms: Xamarin.Forms.Entry.ReturnType & Xamarin.Forms.Entry.ReturnCommand.

ReturnType

ReturnType Android iOS UWP
Default
Done
Go
Next
Search
Send

Platform Support

Platform Supported Version
Xamarin.iOS Yes iOS 8+
Xamarin.iOS Unified Yes iOS 8+
Xamarin.Android Yes API 15+
Windows 10 UWP Yes 10+
Windows Phone Silverlight No
Windows Phone RT No
Windows Store RT No
Xamarin.Mac No

This plugin can be consumed as a CustomRenderer Control or as an Effect.

Setup

iOS

In the FinishedLaunching method of AppDelegate.cs, add CustomReturnEntryRenderer.Init();:

public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        ...

        global::Xamarin.Forms.Forms.Init();
        
        EntryCustomReturn.Forms.Plugin.iOS.CustomReturnEntryRenderer.Init();

        ...
    }
}

Note: You must call EntryCustomReturn.Forms.Plugin.iOS.CustomReturnEntryRenderer.Init(); after you call global::Xamarin.Forms.Forms.Init();

Android

In the Oncreated method of MainActivity.cs, add CustomReturnEntryRenderer.Init();:

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        ...

        global::Xamarin.Forms.Forms.Init(this, bundle);

        EntryCustomReturn.Forms.Plugin.Android.CustomReturnEntryRenderer.Init();

        ...
    }
}

Note: You must call EntryCustomReturn.Forms.Plugin.Android.CustomReturnEntryRenderer.Init(); after you call global::Xamarin.Forms.Forms.Init(this, bundle);

UWP

In the OnLaunched method of App.xaml.cs, add CustomReturnEntryRenderer.Init();:

public partial class App : Application
{
    protected override void OnLaunched(LaunchActivatedEventArgs e)
    {
        ...

        global::Xamarin.Forms.Forms.Init(e);

        EntryCustomReturn.Forms.Plugin.UWP.CustomReturnEntryRenderer.Init();

        ...
    }
}

Note: You must call EntryCustomReturn.Forms.Plugin.UWP.CustomReturnEntryRenderer.Init(); after you call global::Xamarin.Forms.Forms.Init(e);

Usage in Xamarin.Forms Project as a Custom Control

This plugin can be consumed as a CustomRenderer Control or as an Effect.

1. Set the ReturnType Property

The ReturnType property is an enum containing 6 different types: Default, Go, Next, Done, Send, Search.

Coded UI

var goReturnTypeCustomEntry = new CustomReturnEntry
{
    ReturnType = EntryCustomReturn.Forms.Plugin.Abstractions.ReturnType.Go
};

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions">

    <ContentPage.Content>

        <entryCustomReturn:CustomReturnEntry
            x:Name = "MyCustomReturnEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            ReturnType="Go"/>

    </ContentPage.Content>
</ContentPage>

Bindable Property

ReturnType can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new CustomReturnEntry();
customReturnEntry.SetBinding(CustomReturnEntry.ReturnTypeProperty, nameof(MyViewModel.EntryReturnType));

XAML UI

<entryCustomReturn:CustomReturnEntry
    x:Name = "MyCustomReturnEntry"
    HorizontalOptions="Center"
    VerticalOptions="Center"
    ReturnType="{Binding EntryReturnType}"/>

2. Set the ReturnCommand Command

ReturnCommand will fire when the user finalizes the text in an entry with the return key.

Coded UI

goReturnTypeCustomEntry.ReturnCommand = new Command(() => Navigation.PushAsync(new ContentPage()));

XAML UI

Use the Coded UI example above to initialize a Command in the XAML Code Behind

Bindable Property

ReturnCommand can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new CustomReturnEntry();
customReturnEntry.SetBinding(CustomReturnEntry.ReturnCommandProperty nameof(MyViewModel.EntryReturnCommand));

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:SimpleXamlSample"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions"
    BindingContext="{Binding Source={local:MyViewModel}}">

    <ContentPage.Content>

        <entryCustomReturn:CustomReturnEntry
            x:Name = "MyCustomReturnEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            ReturnCommand="{Binding EntryReturnCommand}"/>

    </ContentPage.Content>
</ContentPage>

3. Set the ReturnCommandParameter Property

The ReturnCommandParameter property is an object that can be passed to the ReturnCommand property.

Coded UI

goReturnTypeCustomEntry.ReturnCommand = new Command<string>(async title => await DisplayAlert(title, "", "Ok"));
goReturnTypeCustomEntry.ReturnCommandParameter = "Return Button Tapped";

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions">

    <ContentPage.Content>

        <entryCustomReturn:CustomReturnEntry
            x:Name = "MyCustomReturnEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            ReturnCommandParameter="Return Button Tapped"/>

    </ContentPage.Content>
</ContentPage>

Bindable Property

ReturnCommandParameter can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new CustomReturnEntry();
customReturnEntry.SetBinding(CustomReturnEntry.ReturnCommandParameterProperty, nameof(MyViewModel.EntryReturnCommandParameter));

XAML UI

<entryCustomReturn:CustomReturnEntry
    x:Name = "MyCustomReturnEntry"
    HorizontalOptions="Center"
    VerticalOptions="Center"
    ReturnCommandParameter="{Binding EntryReturnCommandParameter}"/>

Usage in Xamarin.Forms Project as an Effect

This plugin can be consumed as a CustomRenderer Control or as an Effect.

1. Set the ReturnType Property

The ReturnType property is an enum containing 6 different types: Default, Go, Next, Done, Send, Search.

Coded UI

var goReturnTypeEntry = new Entry()
CustomReturnEffect.SetReturnType(goReturnTypeEntry, EntryCustomReturn.Forms.Plugin.Abstractions.ReturnType.Go);

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions">

    <ContentPage.Content>

        <Entry
            x:Name = "GoReturnTypeEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            entryCustomReturn:CustomReturnEffect.ReturnType="{x:Static entryCustomReturn:ReturnType.Default}"/>


    </ContentPage.Content>
</ContentPage>

Bindable Property

ReturnType can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new Entry();
customReturnEntry.SetBinding(CustomReturnEffect.ReturnTypeProperty, nameof(MyViewModel.EntryReturnType));

XAML UI

<Entry
    x:Name = "GoReturnTypeEntry"
    HorizontalOptions="Center"
    VerticalOptions="Center"
    entryCustomReturn:CustomReturnEffect.ReturnType="{Binding EntryReturnType}"/>

2. Set the ReturnCommand Command

ReturnCommand will fire when the user finalizes the text in an entry with the return key.

Coded UI

var goReturnTypeEntry = new Entry()
CustomReturnEffect.SetReturnCommand(goReturnTypeEntry, new Command(() => Navigation.PushAsync(new ContentPage()));

XAML UI

Use the Coded UI example above to initialize a Command in the XAML Code Behind

Bindable Property

ReturnCommand can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new Entry();
customReturnEntry.SetBinding(CustomReturnEffect.ReturnCommandProperty, nameof(MyViewModel.EntryReturnCommand));

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="SimpleXamlSample"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions"
    BindingContext="{Binding Source={local:MyViewModel}}">

    <ContentPage.Content>

        <entryCustomReturn:CustomReturnEntry
            x:Name = "MyCustomReturnEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            entryCustomReturn:CustomReturnEffect.ReturnCommand="{Binding EntryReturnCommand}"/>

    </ContentPage.Content>
</ContentPage>

3. Set the ReturnCommandParameter Property

The ReturnCommandParameter property is an object that can be passed to the ReturnCommand property.

Coded UI

var goReturnTypeEntry = new Entry()
CustomReturnEffect.SetReturnCommand(goReturnTypeEntry, new Command<string>(async title => await DisplayAlert(title, "", "Ok")));
CustomReturnEffect.SetReturnCommandParameter(goReturnTypeEntry, "Return Button Tapped");

XAML UI

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="SimpleXamlSample.CustomRendererPage"
    xmlns:entryCustomReturn="clr-namespace:EntryCustomReturn.Forms.Plugin.Abstractions;assembly=EntryCustomReturn.Forms.Plugin.Abstractions">

    <ContentPage.Content>

        <entryCustomReturn:CustomReturnEntry
            x:Name = "MyCustomReturnEntry"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            entryCustomReturn:CustomReturnEffect.ReturnCommandParameter="Return Button Tapped"/>

    </ContentPage.Content>
</ContentPage>

Bindable Property

ReturnCommandParameter can also be used as a Bindable Property to bind to a ViewModel

Coded UI

var viewModel = new MyViewModel();
BindingContext = viewModel;

var customReturnEntry = new Entry();
customReturnEntry.SetBinding(CustomReturnEffect.ReturnCommandParameterProperty, nameof(MyViewModel.EntryReturnCommandParameter));

XAML UI

<entryCustomReturn:CustomReturnEntry
    x:Name = "MyCustomReturnEntry"
    HorizontalOptions="Center"
    VerticalOptions="Center"
    entryCustomReturn:CustomReturnEffect.ReturnCommandParameter="{Binding EntryReturnCommandParameter}"/>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].