31 Ekim 2016 Pazartesi

iOS klavye için Kapat/Done düğmesi koymak



using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(Entry), typeof(DoneEntryRenderer))]
namespace SuperFaiz.iOS
{
public class DoneEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);

// Check for only Numeric keyboard
if (this.Element.Keyboard == Keyboard.Numeric)
{
this.AddDoneButton();
}
}

protected void AddDoneButton()
{
UIToolbar toolbar = new UIToolbar(new RectangleF(0.0f, 0.0f, 50.0f, 44.0f));

var doneButton = new UIBarButtonItem("Kapat", UIBarButtonItemStyle.Done, delegate
{
this.Control.ResignFirstResponder();
});

toolbar.Items = new UIBarButtonItem[] {
new UIBarButtonItem (UIBarButtonSystemItem.FlexibleSpace),
doneButton
};
this.Control.InputAccessoryView = toolbar;
}
}
}



Bu içeriği DoneEntryRenderer.cs dosyası oluşturup iOS projenizin ana klasörüne kaydedin.

Numeric klavyelerde Kapat düğmesi çıkmaya başlayacak :)

30 Ekim 2016 Pazar

MACOSX Xamarin'de Android projesi için APT0000 hatası (tabIndicatorColor, tabGravity, tabMode)

/users/yourUserName/.local/share dizinine gidilir.
Bu klasör altındaki herşey silinir.
Projeye Clean All çekilir.
Derleme daha uzun sürecektir.
Eğer işlem sonunda yine aynı hata alınırsa bir kez daha tüm bu işlemler tekrarlanır.
Garip ama çalışıyor...

9 Ekim 2016 Pazar

NavBar back button'ın metnini "Geri" yapmak

Göreceksiniz ki birçok yerden denemenize rağmen "Back" yazan geri düğmesinin metnini "Geri" yapamıyorsunuz. Bunun nedeni bu ifadeyi en başta RootPage içinde NavigationPage oluştururken yapmanız gerektiği.

Page page = new ContactsPage();
NavigationPage navigationPage = new NavigationPage(page);
NavigationPage.SetBackButtonTitle(page, "Geri");

Dikkat etmeniz gereken şey NavigationPage class'ının statik komutunu çağırıyoruz ve ilk parametre olarak, navigationPage instance'ımızı değil, navigation'ın page'in içine rootPage olarak verdiğimiz page'i veriyoruz. (ContactsPage instance'ı)

XAML kullanarak NavBar'a sağ button yerleştirme.

Olayı kodla yapmak için bir sürü örnek bulabilirsiniz.
Ben xaml kullanarak yapmak istiyordum.

ContentPage v.b. ilk tag'ın açışından hemen sonra.

<ContentPage.ToolbarItems>
        <ToolbarItem Icon="navbar_notifications_light.png" Name="Create" Clicked="OnButtonNotificationsClicked"></ToolbarItem>
</ContentPage.ToolbarItems>

codebehind'da da "OnButtonNotificationsClicked" adında aşağıdaki gibi bir event handler hazırlarsanız düğmeye tıklanınca kolayca tetiklenir.

private void OnButtonNotificationsClicked(object sender, System.EventArgs e)
{
       // kod...
}

Ne kodla düğme ekleme var ne event bağlama. Tertemiz mis gibi.


iOS StatusBar rengini beyaza çevirmek

iOS projesine gidilir.
info.plist dosyasına sağ tuş > XCode açılır.
En alttaki satırın üzerine gelince çıkan artı düğmesine tıklanır.
"Status Bar Style" eklenir ve değeri "Gray Style (Default)" yapılır.
En alttaki satırın üzerine gelince çıkan artı düğmesine tekrar tıklanır.
"View controller-based status bar bla bla" seçilir ve değeri "NO" yapılır.
Budur...