Tag Archives | Tips&Triks

Clear a WebView before loading a new URL

It seems there isn’t a direct way to clear the content of a WebView before loading a new URL. If you have a TableView and every cell contains a link which push a WebView to display a link, the web previously loaded is display until the new link start loading.
The best way I found to clear out the previous content is to load an empty html file (stored on the resources) on the viewWillDisappear as in the following code:

?View Code OBJECTIVE
- (void)viewWillDisappear:(BOOL)animated {
	[super viewWillDisappear:animated];
 
	NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"blank" ofType:@"html" ]; 
	NSURL *url = [[NSURL alloc] initFileURLWithPath: htmlPath]; 
	NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url]; 
	[myWebView loadRequest: request]; 
	[request release]; 
	[url release];
}

0 Comments

Utilizzare selectRowAtIndexPath senza possibilità di selezione dell’utente

Ho trovato un utile trucco che permette l’utilizzo del messaggio che consente il posizionamento di una UITableView su di una certa cella senza che l’utente possa effettuare selezioni manuali.
Infatti se si imposta la proprietà allowsSelection a NO non funziona nemmeno più la chiamata a selectRowAtIndexPath (ovviamente forse…).

Il trucco consiste nell’impostare all’interno della cellForRowAtIndexPath nella definizione della cella lo stile UITableViewCellSelectionStyleNone in questo modo :

cell.selectionStyle = UITableViewCellSelectionStyleNone;

In questo modo la selezione automatica funzionerà ma eventuali selezioni manuali da parte dell’utenti saranno attive ma sostanzialmente invisibili (a patto di non implementare didSelectRowAtIndexPath).

2 Comments

Ricerca in un NSArray di NSDictionary: uso di NSPredicate

Mi sono trovato a dover effettuare una ricerca di valori di alcune (ma non tutte) chiavi di oggeti NSDictionary all’interno di un NSArray.

L’utilizzo di NSPredicate permette di risolvere il problema in modo estremamente elegante e funzionale.

Assumendo che i valori del dizionario siano caratterizzati dalle chiavi key1 (un NSNumber), key2 (NSString) e key3 (NSString) e si vogliano cercare gli oggetti in cui key1 e key3 assumono certi valori il codice è il seguente:

int valore;
NSString stringa;
 
if ([array count] > 0) {
if ([[array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(key1 == %d && key3 == %@)", valore, stringa]] count] > 0)
   // Value is present
}

1 Comment