UITextField에서 IP 주소를 입력 한 후 서버에 XMLRPC 호출을하는 "getResponse"단추가 있습니다. "getResponse"버튼과 같은 ID를 사용하면 먼저 키보드를 누른 후 서버에 전화를 건 경우 키보드를 종료합니다.단추 누르기 직후 키보드 닫기
키보드가 켜져 있으면 서버를 호출하고 유효한 서버를 찾지 못하면 정보 또는 오류를 검색 한 다음 키보드를 종료합니다.
나는 그것의 아마 아마 쉬운 것을 알고있다. 그러나 나는 그것을 이해할 수 없다. 어떤 도움이라도 좋을 것입니다, 고마워요!
코드 :
시간.
#import <UIKit/UIKit.h>
#import "XMLRPCResponse.h"
#import "XMLRPCRequest.h"
#import "XMLRPCConnection.h"
@interface SecondViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate> {
IBOutlet UILabel *helloResponse;
IBOutlet UILabel *SumCountsResponse;
IBOutlet UITextField *serverInput;
IBOutlet UIPickerView *pickerView;
IBOutlet UILabel *pickerTrap;
IBOutlet UIAlertView *alert;
NSMutableArray * pickerViewArray;
int trapSelected;
}
@property(nonatomic,retain) IBOutlet UILabel *helloResponse;
@property(nonatomic,retain) IBOutlet UILabel *SumCountsResponse;
@property(nonatomic,retain) IBOutlet UITextField *serverInput;
@property(nonatomic,retain) IBOutlet UIPickerView *pickerView;
@property(nonatomic,retain) IBOutlet UILabel *pickerTrap;
@property(nonatomic,retain) IBOutlet UIAlertView *alert;
- (IBAction)getResponse:(id)sender;
- (IBAction)serverInputReturn:(id)sender;
- (IBAction)backgroundTouched:(id)sender;
@end
m.
#import "SecondViewController.h"
@implementation SecondViewController
@synthesize helloResponse;
@synthesize SumCountsResponse;
@synthesize serverInput;
@synthesize pickerView;
@synthesize pickerTrap;
@synthesize alert;
-(IBAction)serverInputReturn:(id)sender { //resign keyboard on 'return' button
[sender resignFirstResponder];
}
-(IBAction)backgroundTouched:(id)sender { //resign keyboard on background touch
[serverInput resignFirstResponder];
}
-(IBAction)getResponse: (id) sender {
[self serverInputReturn:self]; //trying to call method to resign keyboard first
//setup IP call for XMLserver
NSString *server = serverInput.text;
NSString *http = @"http://";
server = [server stringByAppendingString:@":8080/RPC2"];
server = [http stringByAppendingString:server];
//Begin calls to XMLRPC server for data return
XMLRPCRequest *requestHello = [[XMLRPCRequest alloc] initWithHost:[NSURL URLWithString:server]];
[requestHello setMethod:@"hello" withObjects:[NSArray arrayWithObjects: nil]];
NSString *resultHello = [self executeXMLRPCRequest:requestHello];
[requestHello release];
XMLRPCRequest *requestSumCounts = [[XMLRPCRequest alloc] initWithHost:[NSURL URLWithString:server]];
[requestSumCounts setMethod:@"SumCountsString" withObjects:[NSArray arrayWithObjects: nil]];
NSString *resultSumCounts = [self executeXMLRPCRequest:requestSumCounts];
[requestSumCounts release];
XMLRPCRequest *requestTrapCountX = [[XMLRPCRequest alloc] initWithHost:[NSURL URLWithString:server]];
[requestTrapCountX setMethod:@"TrapCountString" withObjects:[NSArray arrayWithObjects: [NSNumber numberWithInt:trapSelected], nil]];
NSString *resultTrapCountX = [self executeXMLRPCRequest:requestTrapCountX];
[requestTrapCountX release];
if (![resultHello isKindOfClass:[NSString class]]){
alert = [[UIAlertView alloc] initWithTitle:@"Error: Invalid Server Address" message:@"Please Check Server Address and Try Again" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
else{
helloResponse.text = resultHello;
SumCountsResponse.text = resultSumCounts;
pickerTrap.text = resultTrapCountX;
}
}
}
- (id)executeXMLRPCRequest:(XMLRPCRequest *)req {
XMLRPCResponse *userInfoResponse = [XMLRPCConnection sendSynchronousXMLRPCRequest:req];
if ([userInfoResponse isKindOfClass:[NSError class]]) {
return alert;
}
else{
return [userInfoResponse object];
}
}
를 통해 UIViewController에로의 UITextField의 대리자를 설정되어 있는지 확인합니다. 무슨 일 이니? 너는 무엇을 기대하고 있니? – ColdLogic
버튼이 XMLRPC 서버를 호출하는 코드를 실행 중입니다. 먼저 UITextBox에 IP 주소를 입력 한 다음 getResponse IBAction을 누릅니다. 나는 먼저 키보드를 사임하고, 그 다음에 XMLRPC 서버를 호출하고 데이터를 보여주고 싶습니다. 지금은 서버가 먼저 호출 된 다음 데이터가 전달 된 다음 키보드가 사임합니다. – swbooking