アプリに自動入力されたUITextFiledが必要です。その中で、ユーザーが文字を入力すると、Webサービスが呼び出され、都市を検索するようにUIpPickerViewに応答が表示されます。文字を入力すると、いくつかの都市名が表示されます。誰かがそれを行う方法を知っていますか?私を助けてください。
質問する
1344 次
1 に答える
3
NSURLConnection
サーバーから非同期でデータを取得するには、 andNSURLConnectionDelegate
メソッドを使用できます
インターフェイスファイル内:
@interface ViewController : UIViewController<NSURLConnectionDelegate, UITextFieldDelegate> {
NSMutableData *mutableData;
}
-(void)getDataUsingText:(NSString *)text;
@end
実装ファイル:
@implementation ViewController
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *value =[textField.text stringByReplacingCharactersInRange:range withString:string];
[self getDataUsingText:value];
return YES;
}
-(void)getDataUsingText:(NSString *)text;
{
NSString *urlString = [NSString stringWithFormat:@"http://...."];
NSURL *url =[NSURL URLWithString:urlString];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[conn start];
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
mutableData = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[mutableData appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *dataString = [[NSString alloc] initWithData:mutableData encoding:NSUTF8StringEncoding];
NSLog(@"your data from server: %@", dataString);
// Here you got the data from server asynchronously.
// Here you can parse the string and reload the picker view using [picker reloadAllComponents];
}
@end
デリゲートをテキストフィールドに設定する必要があり、NSURLConnectionDelegate
メソッドからのデータを使用してピッカーを実装する必要があります。そして、これはピッカービューをロードするためのチュートリアルです。
于 2012-08-13T13:37:29.723 に答える