• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#063 – Inseriamo una navigation bar sulla tastiera stile safari

By Andrea Cappellotto | on 19 Luglio 2010 | 9 Comments
Senza categoria

t063 navigationbar sulla tastiera Ciao ragazzi, un po’ di tempo fa vi ho fatto vedere come inserire il tasto “done” sulla tastiera numerica, oggi, invece, vedremo come inserire una NavigationBar stile “Safari” sulla nostra tastiera.

Iniziamo naturalmente con un nuovo progetto di tipo view-based e chiamiamolo “KeyTab”. Bene, apriamo il KeyTabViewController.xib e inseriamo un campo di testo.

Passiamo quindi al file di interfaccia KeyTabViewController.h e inseriamo un IBOutlet UITextField :

@interface keyTab2ViewController : UIViewController  {
    IBOutlet UITextField * txt;
}
@end

Aggiungiamo anche il delegato del textField. Torniamo al nostro file .xib e colleghiamo il File’s Owner con il campo di testo, e il delegato con il campo di testo. (clicchiamo sul file’s owner tenendo premuto control e colleghiamo le parti).



Passiamo ora all’implementazione dei metodi. Nel viewDidLoad inseriamo la notifica di quando compare la tastiera:

- (void)viewDidLoad
{
    [super viewDidLoad];

	[[NSNotificationCenter defaultCenter] addObserver:self
		selector:@selector(keyboardWasShown:)
		name:UIKeyboardDidShowNotification object:nil];
}

Notate che questa volta non abbiamo fatto alcuna differenza per iOS 4 o precedenti, in quanto il procedimento è lo stesso del precedente tutorial.

Bene, ora aggiungiamo il metodo per far tornare la tastiera:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
	[textField resignFirstResponder];

	return YES;
}

Passiamo ora al vero e proprio pezzo fondamentale, l’inserimento della barra:

- (void)keyboardWasShown:(NSNotification*)aNotification
{
	NSDictionary *info = [aNotification userInfo];
    NSValue *keyBounds = [info objectForKey:UIKeyboardBoundsUserInfoKey];

    CGRect bndKey;
    [keyBounds getValue:&bndKey];

	UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, -40, bndKey.size.width, 40)];
	//[toolbar setTranslucent:YES];
	UIColor * black = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:1.0];
	[toolbar setTintColor:black];
	UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Bottone 1" style:UIBarButtonItemStyleBordered target:self action:@selector(buttonClicked:)];
	NSArray *items = [[NSArray alloc] initWithObjects:barButtonItem, nil];
	[toolbar setItems:items];
	[items release];

	UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
	UIView* keyboard;
	for(int i = 0; i < [tempWindow.subviews count]; i++)
	{
		//Get a reference of the current view
		keyboard = [tempWindow.subviews objectAtIndex:i];

		//Check to see if the description of the view we have referenced is "UIKeyboard" if so then we found
		//the keyboard view that we were looking for
		if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
		{
			[keyboard addSubview:toolbar];
		}
	}

}

Alla riga 7 creiamo la nostra UIToolBar, le dimensioni sono state calcolate perfettamente, gli diamo un colore (in questo caso nero). Creiamo poi un bottone, ne possiamo inserire quanti ne vogliamo, e gli diamo come azione il metodo buttonClicked. Nelle prossime due righe non facciamo altro che creare un array, inserirci dentro il bottone e aggiungere il contenuto dell’array nella barra. In questo caso i bottoni (se ne create più di uno) vi verranno messi tutti in fila, partendo da sinistra. altrimenti potete creare dei bottoni tramite delle viste personalizzate e allora li potete posizionare ovunque.

La parte che segue poi è sempre la stessa, andiamo alla ricerca della vista della tastiera, una volta trovata gli aggiungiamo la barra.

L’ultima cosa che ci resta da fare è quella di creare il metodo che viene chiamato quando clicchiamo sul bottone:

- (void)buttonClicked:(NSNotification *)note
{
	UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"CLICK!!!" message:@"Hai cliccato il bottone sulla tastiera!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
	
;
; }

Ecco qui, quando si clicca su bottone compare un alertView. Spero che i miei brevi tutorial vi siano utili, se volete potete scaricare il progetto da qui:


Progetto KeyTab

Eccovi uno screenshot del tutorial in esecuzione:



Share this story:
  • tweet

Tags: Andrea CappellottoInterface Buildernavigation bartastieraTutorial Praticitutorial Xcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Xcode 4: Distribuzione Ad Hoc delle applicazioni iPhone e iPad

    10 Gennaio 2012 - 20 Comments
  • Tutorial pratici per iOS SDK: disponibile la versione 2.0 aggiornata a iOS 5 e XCode 4.2

    16 Novembre 2011 - 6 Comments
  • T#101 – Integrare AirPrint per stampare dalle applicazioni iPhone e iPad

    13 Settembre 2011 - 10 Comments

Author Description

Perito Elettrotecnico e studente di Scienze Informatiche presso l'università di Trento. Da inizio 2010 , dopo aver lavorato come sistemista-tecnico informatico, si occupa di programmazione in ambito iOS, collabora con un'azienda trentina nello sviluppo di applicazioni iOS per il turismo e realizza soluzioni personalizzate per aziende. Tra gli ultimi progetti ricordiamo l'integrazione tra iOS e Arduino segno che l'open source può benissimo lavorare con sistemi più chiusi come i device Apple! Per devAPP scrive tutorial sulla programmazione, da cosigli su strumenti da utilizzare per semplificare la programmazione, è inoltre moderatore del forum con all'attivo quasi mille post e partecipazioni giornaliere.

9 Responses to “T#063 – Inseriamo una navigation bar sulla tastiera stile safari”

  1. 19 Luglio 2010

    Fra

    Bel tutorial 😀 Ma se io per esempio nella tastiera metto il bottone blu “Cerca” e una volta cliccato si avvia un’azione. Come si fà?

  2. 19 Luglio 2010

    andreaAppCode

    beh è la stessa cosa fatta qui, tu crei il bottone e gli setti come evento l’azione, poi lo aggiungi alla toolbar e il gioco è fatto:)

  3. 19 Luglio 2010

    Francesco

    A andreaAppCode No io intendo senza Toolbar. Al posto di return o invio ci metto il bottone Cerca e quando clicco su esso si avvia un’azione

  4. 19 Luglio 2010

    andreaAppCode

    ahhh ho capito… intendi la tastiera k compare quando cerchi su google…sinceramente nn ci ho mai pensato…. provo a vedere se trovo qualcosa…

  5. 20 Luglio 2010

    Matteo

    textField.returnKey dovrebbe essere il metodo per scegliere quale pulsante di “ritorno” impostare… mettendo il default viene invio, mettendo send viene invia (per la posta elettronica mi pare) mettendo search si imposta la ricerca..

    textField.returnKeyType = UIReturnKeySearch

    dovrebbe essere quello che interessa a te ma non mi ricordo esattamente se è questa la scrittura corretta… perdonami ma vado a memoria..

  6. 20 Luglio 2010

    andre

    si, il problema non è quello di cambiare il tasto, ma di come assegnare un metodo al tasto cerca…. Nel senso che quando imposti il tasto done l’evento alla pressione del tasto è quello di far tornare la tastiera.. ma nel caso del tasto cerca?? probabilmente si basa sul metodo di ricerca per le tabelle… provo a guardare..:)

  7. 21 Dicembre 2010

    Gabry

    tutorial fantastico! ma la toolbar compare sulle tastiere quando scrivo un sms, una mail o una nota? se no, come posso fare ciò?

  8. 2 Marzo 2012

    Adriatik

    Per farlo basta settare il delegato della UITextField ed implementare il seguente metodo:

    - (BOOL)textFieldShouldReturn:(UITextField *)textField;

  9. 26 Maggio 2012

    giovanni

    come faccio per far uscire la toolbar solo su una UIView? nelle altre non mi serve la toolbar…

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO