├── CustomCalloutSample
├── en.lproj
│ ├── InfoPlist.strings
│ ├── CustomCalloutSampleViewController.xib
│ └── MainWindow.xib
├── main.m
├── CustomCalloutSample-Prefix.pch
├── CalloutAnnotation.m
├── CalloutAnnotation.h
├── PinAnnotation.m
├── CustomCalloutSampleAppDelegate.h
├── CustomCalloutSampleViewController.h
├── PinAnnotation.h
├── CalloutAnnotationView.h
├── CustomCalloutSample-Info.plist
├── CalloutAnnotationView.m
├── CustomCalloutSampleAppDelegate.m
└── CustomCalloutSampleViewController.m
├── .gitignore
└── CustomCalloutSample.xcodeproj
├── xcuserdata
└── tochi.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints.xcbkptlist
│ └── xcschemes
│ ├── xcschememanagement.plist
│ └── CustomCalloutSample.xcscheme
├── project.xcworkspace
├── contents.xcworkspacedata
└── xcuserdata
│ └── tochi.xcuserdatad
│ └── UserInterfaceState.xcuserstate
└── project.pbxproj
/CustomCalloutSample/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # xcode noise
2 | build/*
3 | *.pbxuser
4 | *.mode1v3
5 |
6 | # old skool
7 | .svn
8 |
9 | # osx noise
10 | .DS_Store
11 | profile
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/xcuserdata/tochi.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/project.xcworkspace/xcuserdata/tochi.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tochi/custom-callout-sample-for-iOS/HEAD/CustomCalloutSample.xcodeproj/project.xcworkspace/xcuserdata/tochi.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/CustomCalloutSample/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | [pool release];
16 | return retVal;
17 | }
18 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSample-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CustomCalloutSample' target in the 'CustomCalloutSample' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CalloutAnnotation.m:
--------------------------------------------------------------------------------
1 | //
2 | // CalloutAnnotation.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import "CalloutAnnotation.h"
10 |
11 |
12 | @implementation CalloutAnnotation
13 | @synthesize title=title_;
14 | @synthesize coordinate=coordinate_;
15 |
16 | - (void)dealloc
17 | {
18 | [title_ release], title_ = nil;
19 | [super dealloc];
20 | }
21 | @end
22 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CalloutAnnotation.h:
--------------------------------------------------------------------------------
1 | //
2 | // CalloutAnnotation.h
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 |
13 | @interface CalloutAnnotation : NSObject
14 | {
15 | @private
16 | NSString *title_;
17 | CLLocationCoordinate2D coordinate_;
18 | }
19 | @property (nonatomic, retain) NSString *title;
20 | @property (nonatomic) CLLocationCoordinate2D coordinate;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/CustomCalloutSample/PinAnnotation.m:
--------------------------------------------------------------------------------
1 | //
2 | // PinAnnotation.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import "PinAnnotation.h"
10 |
11 |
12 | @implementation PinAnnotation
13 | @synthesize title=title_;
14 | @synthesize coordinate=coordinate_;
15 | @synthesize calloutAnnotation=calloutAnnotation_;
16 |
17 | - (void)dealloc
18 | {
19 | [title_ release], title_ = nil;
20 | [calloutAnnotation_ release], calloutAnnotation_ = nil;
21 | [super dealloc];
22 | }
23 | @end
24 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSampleAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomCalloutSampleAppDelegate.h
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class CustomCalloutSampleViewController;
12 |
13 | @interface CustomCalloutSampleAppDelegate : NSObject {
14 |
15 | }
16 |
17 | @property (nonatomic, retain) IBOutlet UIWindow *window;
18 |
19 | @property (nonatomic, retain) IBOutlet CustomCalloutSampleViewController *viewController;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSampleViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomCalloutSampleViewController.h
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "PinAnnotation.h"
12 | #import "CalloutAnnotation.h"
13 | #import "CalloutAnnotationView.h"
14 |
15 | @interface CustomCalloutSampleViewController : UIViewController
17 | {
18 | @private
19 | MKMapView *mapView_;
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/xcuserdata/tochi.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | CustomCalloutSample.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | D903504C1381F76B002878D9
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/CustomCalloutSample/PinAnnotation.h:
--------------------------------------------------------------------------------
1 | //
2 | // PinAnnotation.h
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "CalloutAnnotation.h"
12 |
13 |
14 | @interface PinAnnotation : NSObject
15 | {
16 | @private
17 | NSString *title_;
18 | CLLocationCoordinate2D coordinate_;
19 | CalloutAnnotation *calloutAnnotation_;
20 | }
21 | @property (nonatomic, retain) NSString *title;
22 | @property (nonatomic) CLLocationCoordinate2D coordinate;
23 | @property (nonatomic, retain) CalloutAnnotation *calloutAnnotation;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CalloutAnnotationView.h:
--------------------------------------------------------------------------------
1 | //
2 | // CalloutAnnotationView.h
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @protocol CalloutAnnotationViewDelegate;
13 | @interface CalloutAnnotationView : MKAnnotationView
14 | {
15 | @private
16 | NSString *title_;
17 | UILabel *titleLabel_;
18 | UIButton *button_;
19 | }
20 | @property (nonatomic, retain) NSString *title;
21 | @property (nonatomic, assign) id delegate;
22 | @end
23 |
24 | @protocol CalloutAnnotationViewDelegate
25 | @required
26 | - (void)calloutButtonClicked:(NSString *)title;
27 | @end
28 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSample-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | com.aguuu.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 1.0
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 1.0
27 | LSRequiresIPhoneOS
28 |
29 | NSMainNibFile
30 | MainWindow
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CalloutAnnotationView.m:
--------------------------------------------------------------------------------
1 | //
2 | // CalloutAnnotationView.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import "CalloutAnnotationView.h"
10 | #import "CalloutAnnotation.h"
11 |
12 | @implementation CalloutAnnotationView
13 | @synthesize title=title_;
14 | @synthesize delegate=delegate_;
15 |
16 | - (id)initWithAnnotation:(id)annotation
17 | reuseIdentifier:(NSString *)reuseIdentifier
18 | {
19 | self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
20 |
21 | if (self) {
22 | self.frame = CGRectMake(0.0f, 0.0f, 100.0f, 200.0f);
23 | // self.backgroundColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.3f];
24 | self.backgroundColor = [UIColor clearColor];
25 |
26 | titleLabel_ = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 50.0f)];
27 | titleLabel_.textColor = [UIColor whiteColor];
28 | titleLabel_.textAlignment = UITextAlignmentCenter;
29 | titleLabel_.backgroundColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.5f];
30 | [self addSubview:titleLabel_];
31 |
32 | button_ = [[UIButton buttonWithType:UIButtonTypeInfoLight] retain];
33 | [button_ addTarget:self action:@selector(calloutButtonClicked) forControlEvents:UIControlEventTouchDown];
34 | [self addSubview:button_];
35 | }
36 |
37 | return self;
38 | }
39 |
40 | - (void)dealloc
41 | {
42 | [title_ release], title_ = nil;
43 | [titleLabel_ release], titleLabel_ = nil;
44 | [button_ release], button_ = nil;
45 |
46 | [super dealloc];
47 | }
48 |
49 | -(void)drawRect:(CGRect)rect
50 | {
51 | [super drawRect:rect];
52 | titleLabel_.text = self.title;
53 | }
54 |
55 | #pragma mark - Button clicked
56 | - (void)calloutButtonClicked
57 | {
58 | CalloutAnnotation *annotation = self.annotation;
59 | [delegate_ calloutButtonClicked:(NSString *)annotation.title];
60 | }
61 | @end
62 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSampleAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // CustomCalloutSampleAppDelegate.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import "CustomCalloutSampleAppDelegate.h"
10 |
11 | #import "CustomCalloutSampleViewController.h"
12 |
13 | @implementation CustomCalloutSampleAppDelegate
14 |
15 |
16 | @synthesize window=_window;
17 |
18 | @synthesize viewController=_viewController;
19 |
20 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
21 | {
22 | // Override point for customization after application launch.
23 |
24 | self.window.rootViewController = self.viewController;
25 | [self.window makeKeyAndVisible];
26 | return YES;
27 | }
28 |
29 | - (void)applicationWillResignActive:(UIApplication *)application
30 | {
31 | /*
32 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
33 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
34 | */
35 | }
36 |
37 | - (void)applicationDidEnterBackground:(UIApplication *)application
38 | {
39 | /*
40 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
41 | If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
42 | */
43 | }
44 |
45 | - (void)applicationWillEnterForeground:(UIApplication *)application
46 | {
47 | /*
48 | Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
49 | */
50 | }
51 |
52 | - (void)applicationDidBecomeActive:(UIApplication *)application
53 | {
54 | /*
55 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
56 | */
57 | }
58 |
59 | - (void)applicationWillTerminate:(UIApplication *)application
60 | {
61 | /*
62 | Called when the application is about to terminate.
63 | Save data if appropriate.
64 | See also applicationDidEnterBackground:.
65 | */
66 | }
67 |
68 | - (void)dealloc
69 | {
70 | [_window release];
71 | [_viewController release];
72 | [super dealloc];
73 | }
74 |
75 | @end
76 |
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/xcuserdata/tochi.xcuserdatad/xcschemes/CustomCalloutSample.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
59 |
60 |
66 |
67 |
68 |
69 |
71 |
72 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/CustomCalloutSample/CustomCalloutSampleViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // CustomCalloutSampleViewController.m
3 | // CustomCalloutSample
4 | //
5 | // Created by tochi on 11/05/17.
6 | // Copyright 2011 aguuu,Inc. All rights reserved.
7 | //
8 |
9 | #import "CustomCalloutSampleViewController.h"
10 |
11 |
12 | @interface CustomCalloutSampleViewController (Private)
13 | - (void)releaseOutlets;
14 | @end
15 |
16 | @implementation CustomCalloutSampleViewController
17 |
18 | - (void)dealloc
19 | {
20 | [super dealloc];
21 |
22 | [self releaseOutlets];
23 | }
24 |
25 | - (void)didReceiveMemoryWarning
26 | {
27 | [super didReceiveMemoryWarning];
28 | }
29 |
30 | - (void)releaseOutlets
31 | {
32 | [mapView_ release], mapView_ = nil;
33 | }
34 |
35 | #pragma mark - View lifecycle
36 | - (void)viewDidLoad
37 | {
38 | [super viewDidLoad];
39 |
40 | // MapView.
41 | mapView_ = [[MKMapView alloc] init];
42 | mapView_.delegate = self;
43 | mapView_.frame = self.view.bounds;
44 | [self.view addSubview:mapView_];
45 |
46 | // Pin annotation.
47 | NSMutableArray *locationArray = [NSMutableArray arrayWithCapacity:0];
48 | [locationArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:
49 | @"Pin-1", @"title",
50 | [NSNumber numberWithFloat:34.655146f], @"lat",
51 | [NSNumber numberWithFloat:133.919502f], @"lon", nil]];
52 | [locationArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:
53 | @"Pin-2", @"title",
54 | [NSNumber numberWithFloat:34.755146f], @"lat",
55 | [NSNumber numberWithFloat:133.819502f], @"lon", nil]];
56 |
57 | // Add annotations on the MapView.
58 | PinAnnotation *pinAnnotation;
59 | CLLocationCoordinate2D coordinate;
60 | for (NSDictionary *location in locationArray) {
61 | coordinate.latitude = [[location objectForKey:@"lat"] floatValue];
62 | coordinate.longitude = [[location objectForKey:@"lon"] floatValue];
63 |
64 | pinAnnotation = [[PinAnnotation alloc] init];
65 | pinAnnotation.title = (NSString *)[location objectForKey:@"title"];
66 | pinAnnotation.coordinate = coordinate;
67 | [mapView_ addAnnotation:pinAnnotation];
68 | [pinAnnotation release];
69 | }
70 |
71 | mapView_.region = MKCoordinateRegionMakeWithDistance(coordinate, 100000, 100000);
72 | }
73 |
74 | - (void)viewDidUnload
75 | {
76 | [super viewDidUnload];
77 |
78 | [self releaseOutlets];
79 | }
80 |
81 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
82 | {
83 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
84 | }
85 |
86 | #pragma mark - MapView delegate.
87 | - (MKAnnotationView *)mapView:(MKMapView *)mapView
88 | viewForAnnotation:(id)annotation
89 | {
90 | MKAnnotationView *annotationView;
91 | NSString *identifier;
92 |
93 | if ([annotation isKindOfClass:[PinAnnotation class]]) {
94 | // Pin annotation.
95 | identifier = @"Pin";
96 | annotationView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
97 |
98 | if (annotationView == nil) {
99 | annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease];
100 | }
101 | } else if ([annotation isKindOfClass:[CalloutAnnotation class]]) {
102 | // Callout annotation.
103 | identifier = @"Callout";
104 | annotationView = (CalloutAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
105 |
106 | if (annotationView == nil) {
107 | annotationView = [[[CalloutAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease];
108 | }
109 |
110 | CalloutAnnotation *calloutAnnotation = (CalloutAnnotation *)annotation;
111 |
112 | ((CalloutAnnotationView *)annotationView).title = calloutAnnotation.title;
113 | ((CalloutAnnotationView *)annotationView).delegate = self;
114 | [annotationView setNeedsDisplay];
115 |
116 | // Move the display position of MapView.
117 | [UIView animateWithDuration:0.5f
118 | animations:^(void) {
119 | mapView.centerCoordinate = calloutAnnotation.coordinate;
120 | }];
121 | }
122 |
123 | annotationView.annotation = annotation;
124 |
125 | return annotationView;
126 | }
127 |
128 | - (void)mapView:(MKMapView *)mapView
129 | didSelectAnnotationView:(MKAnnotationView *)view
130 | {
131 | if ([view.annotation isKindOfClass:[PinAnnotation class]]) {
132 | // Selected the pin annotation.
133 | CalloutAnnotation *calloutAnnotation = [[[CalloutAnnotation alloc] init] autorelease];
134 |
135 | PinAnnotation *pinAnnotation = ((PinAnnotation *)view.annotation);
136 | calloutAnnotation.title = pinAnnotation.title;
137 | calloutAnnotation.coordinate = pinAnnotation.coordinate;
138 | pinAnnotation.calloutAnnotation = calloutAnnotation;
139 |
140 | [mapView addAnnotation:calloutAnnotation];
141 | }
142 | }
143 |
144 | - (void)mapView:(MKMapView *)mapView
145 | didDeselectAnnotationView:(MKAnnotationView *)view
146 | {
147 | if ([view.annotation isKindOfClass:[PinAnnotation class]]) {
148 | // Deselected the pin annotation.
149 | PinAnnotation *pinAnnotation = ((PinAnnotation *)view.annotation);
150 |
151 | [mapView removeAnnotation:pinAnnotation.calloutAnnotation];
152 |
153 | pinAnnotation.calloutAnnotation = nil;
154 | }
155 | }
156 |
157 | #pragma mark - CalloutAnnotationViewDelegate
158 | - (void)calloutButtonClicked:(NSString *)title
159 | {
160 | NSLog(@"%@", title);
161 | }
162 | @end
163 |
--------------------------------------------------------------------------------
/CustomCalloutSample/en.lproj/CustomCalloutSampleViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 800
5 | 10C540
6 | 759
7 | 1038.25
8 | 458.00
9 |
13 |
17 |
21 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 |
42 | 274
43 | {320, 460}
44 |
45 |
46 | 3
47 | MC43NQA
48 |
49 | 2
50 |
51 |
52 | NO
53 |
54 | IBCocoaTouchFramework
55 |
56 |
57 |
58 |
59 | YES
60 |
61 |
62 | view
63 |
64 |
65 |
66 | 7
67 |
68 |
69 |
70 |
71 | YES
72 |
73 | 0
74 |
75 |
76 |
77 |
78 |
79 | -1
80 |
81 |
82 | File's Owner
83 |
84 |
85 | -2
86 |
87 |
88 |
89 |
90 | 6
91 |
92 |
93 |
94 |
95 |
96 |
97 | YES
98 |
99 | YES
100 | -1.CustomClassName
101 | -2.CustomClassName
102 | 6.IBEditorWindowLastContentRect
103 | 6.IBPluginDependency
104 |
105 |
106 | YES
107 | CustomCalloutSampleViewController
108 | UIResponder
109 | {{239, 654}, {320, 480}}
110 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
111 |
112 |
113 |
114 | YES
115 |
116 |
117 | YES
118 |
119 |
120 |
121 |
122 | YES
123 |
124 |
125 | YES
126 |
127 |
128 |
129 | 7
130 |
131 |
132 |
133 | YES
134 |
135 | CustomCalloutSampleViewController
136 | UIViewController
137 |
138 | IBProjectSource
139 | CustomCalloutSampleViewController.h
140 |
141 |
142 |
143 |
144 | 0
145 | IBCocoaTouchFramework
146 |
147 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
148 |
149 |
150 | YES
151 | CustomCalloutSample.xcodeproj
152 | 3
153 | 77
154 |
155 |
156 |
157 |
--------------------------------------------------------------------------------
/CustomCalloutSample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | D90350521381F76B002878D9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90350511381F76B002878D9 /* UIKit.framework */; };
11 | D90350541381F76B002878D9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90350531381F76B002878D9 /* Foundation.framework */; };
12 | D90350561381F76B002878D9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90350551381F76B002878D9 /* CoreGraphics.framework */; };
13 | D903505C1381F76B002878D9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D903505A1381F76B002878D9 /* InfoPlist.strings */; };
14 | D903505F1381F76B002878D9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D903505E1381F76B002878D9 /* main.m */; };
15 | D90350621381F76B002878D9 /* CustomCalloutSampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D90350611381F76B002878D9 /* CustomCalloutSampleAppDelegate.m */; };
16 | D90350651381F76B002878D9 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = D90350631381F76B002878D9 /* MainWindow.xib */; };
17 | D90350681381F76B002878D9 /* CustomCalloutSampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D90350671381F76B002878D9 /* CustomCalloutSampleViewController.m */; };
18 | D903506B1381F76B002878D9 /* CustomCalloutSampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D90350691381F76B002878D9 /* CustomCalloutSampleViewController.xib */; };
19 | D90350721381F7B0002878D9 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90350711381F7B0002878D9 /* MapKit.framework */; };
20 | D90350751381FA10002878D9 /* PinAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = D90350741381FA10002878D9 /* PinAnnotation.m */; };
21 | D903507813820515002878D9 /* CalloutAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = D903507713820515002878D9 /* CalloutAnnotation.m */; };
22 | D903507B1382061D002878D9 /* CalloutAnnotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = D903507A1382061D002878D9 /* CalloutAnnotationView.m */; };
23 | /* End PBXBuildFile section */
24 |
25 | /* Begin PBXFileReference section */
26 | D903504D1381F76B002878D9 /* CustomCalloutSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CustomCalloutSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
27 | D90350511381F76B002878D9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
28 | D90350531381F76B002878D9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
29 | D90350551381F76B002878D9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
30 | D90350591381F76B002878D9 /* CustomCalloutSample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CustomCalloutSample-Info.plist"; sourceTree = ""; };
31 | D903505B1381F76B002878D9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
32 | D903505D1381F76B002878D9 /* CustomCalloutSample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CustomCalloutSample-Prefix.pch"; sourceTree = ""; };
33 | D903505E1381F76B002878D9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
34 | D90350601381F76B002878D9 /* CustomCalloutSampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomCalloutSampleAppDelegate.h; sourceTree = ""; };
35 | D90350611381F76B002878D9 /* CustomCalloutSampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomCalloutSampleAppDelegate.m; sourceTree = ""; };
36 | D90350641381F76B002878D9 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; };
37 | D90350661381F76B002878D9 /* CustomCalloutSampleViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomCalloutSampleViewController.h; sourceTree = ""; };
38 | D90350671381F76B002878D9 /* CustomCalloutSampleViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomCalloutSampleViewController.m; sourceTree = ""; };
39 | D903506A1381F76B002878D9 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/CustomCalloutSampleViewController.xib; sourceTree = ""; };
40 | D90350711381F7B0002878D9 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
41 | D90350731381FA10002878D9 /* PinAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PinAnnotation.h; sourceTree = ""; };
42 | D90350741381FA10002878D9 /* PinAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PinAnnotation.m; sourceTree = ""; };
43 | D903507613820515002878D9 /* CalloutAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalloutAnnotation.h; sourceTree = ""; };
44 | D903507713820515002878D9 /* CalloutAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CalloutAnnotation.m; sourceTree = ""; };
45 | D90350791382061D002878D9 /* CalloutAnnotationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalloutAnnotationView.h; sourceTree = ""; };
46 | D903507A1382061D002878D9 /* CalloutAnnotationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CalloutAnnotationView.m; sourceTree = ""; };
47 | /* End PBXFileReference section */
48 |
49 | /* Begin PBXFrameworksBuildPhase section */
50 | D903504A1381F76B002878D9 /* Frameworks */ = {
51 | isa = PBXFrameworksBuildPhase;
52 | buildActionMask = 2147483647;
53 | files = (
54 | D90350721381F7B0002878D9 /* MapKit.framework in Frameworks */,
55 | D90350521381F76B002878D9 /* UIKit.framework in Frameworks */,
56 | D90350541381F76B002878D9 /* Foundation.framework in Frameworks */,
57 | D90350561381F76B002878D9 /* CoreGraphics.framework in Frameworks */,
58 | );
59 | runOnlyForDeploymentPostprocessing = 0;
60 | };
61 | /* End PBXFrameworksBuildPhase section */
62 |
63 | /* Begin PBXGroup section */
64 | D90350421381F76B002878D9 = {
65 | isa = PBXGroup;
66 | children = (
67 | D90350571381F76B002878D9 /* CustomCalloutSample */,
68 | D90350501381F76B002878D9 /* Frameworks */,
69 | D903504E1381F76B002878D9 /* Products */,
70 | );
71 | sourceTree = "";
72 | };
73 | D903504E1381F76B002878D9 /* Products */ = {
74 | isa = PBXGroup;
75 | children = (
76 | D903504D1381F76B002878D9 /* CustomCalloutSample.app */,
77 | );
78 | name = Products;
79 | sourceTree = "";
80 | };
81 | D90350501381F76B002878D9 /* Frameworks */ = {
82 | isa = PBXGroup;
83 | children = (
84 | D90350711381F7B0002878D9 /* MapKit.framework */,
85 | D90350511381F76B002878D9 /* UIKit.framework */,
86 | D90350531381F76B002878D9 /* Foundation.framework */,
87 | D90350551381F76B002878D9 /* CoreGraphics.framework */,
88 | );
89 | name = Frameworks;
90 | sourceTree = "";
91 | };
92 | D90350571381F76B002878D9 /* CustomCalloutSample */ = {
93 | isa = PBXGroup;
94 | children = (
95 | D90350601381F76B002878D9 /* CustomCalloutSampleAppDelegate.h */,
96 | D90350611381F76B002878D9 /* CustomCalloutSampleAppDelegate.m */,
97 | D90350631381F76B002878D9 /* MainWindow.xib */,
98 | D90350661381F76B002878D9 /* CustomCalloutSampleViewController.h */,
99 | D90350671381F76B002878D9 /* CustomCalloutSampleViewController.m */,
100 | D90350691381F76B002878D9 /* CustomCalloutSampleViewController.xib */,
101 | D90350731381FA10002878D9 /* PinAnnotation.h */,
102 | D90350741381FA10002878D9 /* PinAnnotation.m */,
103 | D903507613820515002878D9 /* CalloutAnnotation.h */,
104 | D903507713820515002878D9 /* CalloutAnnotation.m */,
105 | D90350791382061D002878D9 /* CalloutAnnotationView.h */,
106 | D903507A1382061D002878D9 /* CalloutAnnotationView.m */,
107 | D90350581381F76B002878D9 /* Supporting Files */,
108 | );
109 | path = CustomCalloutSample;
110 | sourceTree = "";
111 | };
112 | D90350581381F76B002878D9 /* Supporting Files */ = {
113 | isa = PBXGroup;
114 | children = (
115 | D90350591381F76B002878D9 /* CustomCalloutSample-Info.plist */,
116 | D903505A1381F76B002878D9 /* InfoPlist.strings */,
117 | D903505D1381F76B002878D9 /* CustomCalloutSample-Prefix.pch */,
118 | D903505E1381F76B002878D9 /* main.m */,
119 | );
120 | name = "Supporting Files";
121 | sourceTree = "";
122 | };
123 | /* End PBXGroup section */
124 |
125 | /* Begin PBXNativeTarget section */
126 | D903504C1381F76B002878D9 /* CustomCalloutSample */ = {
127 | isa = PBXNativeTarget;
128 | buildConfigurationList = D903506E1381F76B002878D9 /* Build configuration list for PBXNativeTarget "CustomCalloutSample" */;
129 | buildPhases = (
130 | D90350491381F76B002878D9 /* Sources */,
131 | D903504A1381F76B002878D9 /* Frameworks */,
132 | D903504B1381F76B002878D9 /* Resources */,
133 | );
134 | buildRules = (
135 | );
136 | dependencies = (
137 | );
138 | name = CustomCalloutSample;
139 | productName = CustomCalloutSample;
140 | productReference = D903504D1381F76B002878D9 /* CustomCalloutSample.app */;
141 | productType = "com.apple.product-type.application";
142 | };
143 | /* End PBXNativeTarget section */
144 |
145 | /* Begin PBXProject section */
146 | D90350441381F76B002878D9 /* Project object */ = {
147 | isa = PBXProject;
148 | attributes = {
149 | ORGANIZATIONNAME = "aguuu,Inc.";
150 | };
151 | buildConfigurationList = D90350471381F76B002878D9 /* Build configuration list for PBXProject "CustomCalloutSample" */;
152 | compatibilityVersion = "Xcode 3.2";
153 | developmentRegion = English;
154 | hasScannedForEncodings = 0;
155 | knownRegions = (
156 | en,
157 | );
158 | mainGroup = D90350421381F76B002878D9;
159 | productRefGroup = D903504E1381F76B002878D9 /* Products */;
160 | projectDirPath = "";
161 | projectRoot = "";
162 | targets = (
163 | D903504C1381F76B002878D9 /* CustomCalloutSample */,
164 | );
165 | };
166 | /* End PBXProject section */
167 |
168 | /* Begin PBXResourcesBuildPhase section */
169 | D903504B1381F76B002878D9 /* Resources */ = {
170 | isa = PBXResourcesBuildPhase;
171 | buildActionMask = 2147483647;
172 | files = (
173 | D903505C1381F76B002878D9 /* InfoPlist.strings in Resources */,
174 | D90350651381F76B002878D9 /* MainWindow.xib in Resources */,
175 | D903506B1381F76B002878D9 /* CustomCalloutSampleViewController.xib in Resources */,
176 | );
177 | runOnlyForDeploymentPostprocessing = 0;
178 | };
179 | /* End PBXResourcesBuildPhase section */
180 |
181 | /* Begin PBXSourcesBuildPhase section */
182 | D90350491381F76B002878D9 /* Sources */ = {
183 | isa = PBXSourcesBuildPhase;
184 | buildActionMask = 2147483647;
185 | files = (
186 | D903505F1381F76B002878D9 /* main.m in Sources */,
187 | D90350621381F76B002878D9 /* CustomCalloutSampleAppDelegate.m in Sources */,
188 | D90350681381F76B002878D9 /* CustomCalloutSampleViewController.m in Sources */,
189 | D90350751381FA10002878D9 /* PinAnnotation.m in Sources */,
190 | D903507813820515002878D9 /* CalloutAnnotation.m in Sources */,
191 | D903507B1382061D002878D9 /* CalloutAnnotationView.m in Sources */,
192 | );
193 | runOnlyForDeploymentPostprocessing = 0;
194 | };
195 | /* End PBXSourcesBuildPhase section */
196 |
197 | /* Begin PBXVariantGroup section */
198 | D903505A1381F76B002878D9 /* InfoPlist.strings */ = {
199 | isa = PBXVariantGroup;
200 | children = (
201 | D903505B1381F76B002878D9 /* en */,
202 | );
203 | name = InfoPlist.strings;
204 | sourceTree = "";
205 | };
206 | D90350631381F76B002878D9 /* MainWindow.xib */ = {
207 | isa = PBXVariantGroup;
208 | children = (
209 | D90350641381F76B002878D9 /* en */,
210 | );
211 | name = MainWindow.xib;
212 | sourceTree = "";
213 | };
214 | D90350691381F76B002878D9 /* CustomCalloutSampleViewController.xib */ = {
215 | isa = PBXVariantGroup;
216 | children = (
217 | D903506A1381F76B002878D9 /* en */,
218 | );
219 | name = CustomCalloutSampleViewController.xib;
220 | sourceTree = "";
221 | };
222 | /* End PBXVariantGroup section */
223 |
224 | /* Begin XCBuildConfiguration section */
225 | D903506C1381F76B002878D9 /* Debug */ = {
226 | isa = XCBuildConfiguration;
227 | buildSettings = {
228 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
229 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
230 | GCC_C_LANGUAGE_STANDARD = gnu99;
231 | GCC_OPTIMIZATION_LEVEL = 0;
232 | GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
233 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
234 | GCC_VERSION = com.apple.compilers.llvmgcc42;
235 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
236 | GCC_WARN_UNUSED_VARIABLE = YES;
237 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
238 | SDKROOT = iphoneos;
239 | };
240 | name = Debug;
241 | };
242 | D903506D1381F76B002878D9 /* Release */ = {
243 | isa = XCBuildConfiguration;
244 | buildSettings = {
245 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
246 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
247 | GCC_C_LANGUAGE_STANDARD = gnu99;
248 | GCC_VERSION = com.apple.compilers.llvmgcc42;
249 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
250 | GCC_WARN_UNUSED_VARIABLE = YES;
251 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
252 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
253 | SDKROOT = iphoneos;
254 | };
255 | name = Release;
256 | };
257 | D903506F1381F76B002878D9 /* Debug */ = {
258 | isa = XCBuildConfiguration;
259 | buildSettings = {
260 | ALWAYS_SEARCH_USER_PATHS = NO;
261 | COPY_PHASE_STRIP = NO;
262 | GCC_DYNAMIC_NO_PIC = NO;
263 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
264 | GCC_PREFIX_HEADER = "CustomCalloutSample/CustomCalloutSample-Prefix.pch";
265 | INFOPLIST_FILE = "CustomCalloutSample/CustomCalloutSample-Info.plist";
266 | PRODUCT_NAME = "$(TARGET_NAME)";
267 | WRAPPER_EXTENSION = app;
268 | };
269 | name = Debug;
270 | };
271 | D90350701381F76B002878D9 /* Release */ = {
272 | isa = XCBuildConfiguration;
273 | buildSettings = {
274 | ALWAYS_SEARCH_USER_PATHS = NO;
275 | COPY_PHASE_STRIP = YES;
276 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
277 | GCC_PREFIX_HEADER = "CustomCalloutSample/CustomCalloutSample-Prefix.pch";
278 | INFOPLIST_FILE = "CustomCalloutSample/CustomCalloutSample-Info.plist";
279 | PRODUCT_NAME = "$(TARGET_NAME)";
280 | VALIDATE_PRODUCT = YES;
281 | WRAPPER_EXTENSION = app;
282 | };
283 | name = Release;
284 | };
285 | /* End XCBuildConfiguration section */
286 |
287 | /* Begin XCConfigurationList section */
288 | D90350471381F76B002878D9 /* Build configuration list for PBXProject "CustomCalloutSample" */ = {
289 | isa = XCConfigurationList;
290 | buildConfigurations = (
291 | D903506C1381F76B002878D9 /* Debug */,
292 | D903506D1381F76B002878D9 /* Release */,
293 | );
294 | defaultConfigurationIsVisible = 0;
295 | defaultConfigurationName = Release;
296 | };
297 | D903506E1381F76B002878D9 /* Build configuration list for PBXNativeTarget "CustomCalloutSample" */ = {
298 | isa = XCConfigurationList;
299 | buildConfigurations = (
300 | D903506F1381F76B002878D9 /* Debug */,
301 | D90350701381F76B002878D9 /* Release */,
302 | );
303 | defaultConfigurationIsVisible = 0;
304 | };
305 | /* End XCConfigurationList section */
306 | };
307 | rootObject = D90350441381F76B002878D9 /* Project object */;
308 | }
309 |
--------------------------------------------------------------------------------
/CustomCalloutSample/en.lproj/MainWindow.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1024
5 | 10D571
6 | 786
7 | 1038.29
8 | 460.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 112
12 |
13 |
14 | YES
15 |
16 |
17 |
18 | YES
19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
20 |
21 |
22 | YES
23 |
24 | YES
25 |
26 |
27 | YES
28 |
29 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 | IBCocoaTouchFramework
42 |
43 |
44 | CustomCalloutSampleViewController
45 |
46 |
47 | 1
48 |
49 | IBCocoaTouchFramework
50 | NO
51 |
52 |
53 |
54 | 292
55 | {320, 480}
56 |
57 | 1
58 | MSAxIDEAA
59 |
60 | NO
61 | NO
62 |
63 | IBCocoaTouchFramework
64 | YES
65 |
66 |
67 |
68 |
69 | YES
70 |
71 |
72 | delegate
73 |
74 |
75 |
76 | 4
77 |
78 |
79 |
80 | viewController
81 |
82 |
83 |
84 | 11
85 |
86 |
87 |
88 | window
89 |
90 |
91 |
92 | 14
93 |
94 |
95 |
96 |
97 | YES
98 |
99 | 0
100 |
101 |
102 |
103 |
104 |
105 | -1
106 |
107 |
108 | File's Owner
109 |
110 |
111 | 3
112 |
113 |
114 | CustomCalloutSample App Delegate
115 |
116 |
117 | -2
118 |
119 |
120 |
121 |
122 | 10
123 |
124 |
125 |
126 |
127 | 12
128 |
129 |
130 |
131 |
132 |
133 |
134 | YES
135 |
136 | YES
137 | -1.CustomClassName
138 | -2.CustomClassName
139 | 10.CustomClassName
140 | 10.IBEditorWindowLastContentRect
141 | 10.IBPluginDependency
142 | 12.IBEditorWindowLastContentRect
143 | 12.IBPluginDependency
144 | 3.CustomClassName
145 | 3.IBPluginDependency
146 |
147 |
148 | YES
149 | UIApplication
150 | UIResponder
151 | CustomCalloutSampleViewController
152 | {{234, 376}, {320, 480}}
153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
154 | {{525, 346}, {320, 480}}
155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
156 | CustomCalloutSampleAppDelegate
157 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
158 |
159 |
160 |
161 | YES
162 |
163 |
164 | YES
165 |
166 |
167 |
168 |
169 | YES
170 |
171 |
172 | YES
173 |
174 |
175 |
176 | 15
177 |
178 |
179 |
180 | YES
181 |
182 | UIWindow
183 | UIView
184 |
185 | IBUserSource
186 |
187 |
188 |
189 |
190 | CustomCalloutSampleAppDelegate
191 | NSObject
192 |
193 | YES
194 |
195 | YES
196 | viewController
197 | window
198 |
199 |
200 | YES
201 | CustomCalloutSampleViewController
202 | UIWindow
203 |
204 |
205 |
206 | YES
207 |
208 | YES
209 | viewController
210 | window
211 |
212 |
213 | YES
214 |
215 | viewController
216 | CustomCalloutSampleViewController
217 |
218 |
219 | window
220 | UIWindow
221 |
222 |
223 |
224 |
225 | IBProjectSource
226 | CustomCalloutSampleAppDelegate.h
227 |
228 |
229 |
230 | CustomCalloutSampleAppDelegate
231 | NSObject
232 |
233 | IBUserSource
234 |
235 |
236 |
237 |
238 | CustomCalloutSampleViewController
239 | UIViewController
240 |
241 | IBProjectSource
242 | CustomCalloutSampleViewController.h
243 |
244 |
245 |
246 |
247 | YES
248 |
249 | NSObject
250 |
251 | IBFrameworkSource
252 | Foundation.framework/Headers/NSError.h
253 |
254 |
255 |
256 | NSObject
257 |
258 | IBFrameworkSource
259 | Foundation.framework/Headers/NSFileManager.h
260 |
261 |
262 |
263 | NSObject
264 |
265 | IBFrameworkSource
266 | Foundation.framework/Headers/NSKeyValueCoding.h
267 |
268 |
269 |
270 | NSObject
271 |
272 | IBFrameworkSource
273 | Foundation.framework/Headers/NSKeyValueObserving.h
274 |
275 |
276 |
277 | NSObject
278 |
279 | IBFrameworkSource
280 | Foundation.framework/Headers/NSKeyedArchiver.h
281 |
282 |
283 |
284 | NSObject
285 |
286 | IBFrameworkSource
287 | Foundation.framework/Headers/NSObject.h
288 |
289 |
290 |
291 | NSObject
292 |
293 | IBFrameworkSource
294 | Foundation.framework/Headers/NSRunLoop.h
295 |
296 |
297 |
298 | NSObject
299 |
300 | IBFrameworkSource
301 | Foundation.framework/Headers/NSThread.h
302 |
303 |
304 |
305 | NSObject
306 |
307 | IBFrameworkSource
308 | Foundation.framework/Headers/NSURL.h
309 |
310 |
311 |
312 | NSObject
313 |
314 | IBFrameworkSource
315 | Foundation.framework/Headers/NSURLConnection.h
316 |
317 |
318 |
319 | NSObject
320 |
321 | IBFrameworkSource
322 | UIKit.framework/Headers/UIAccessibility.h
323 |
324 |
325 |
326 | NSObject
327 |
328 | IBFrameworkSource
329 | UIKit.framework/Headers/UINibLoading.h
330 |
331 |
332 |
333 | NSObject
334 |
335 | IBFrameworkSource
336 | UIKit.framework/Headers/UIResponder.h
337 |
338 |
339 |
340 | UIApplication
341 | UIResponder
342 |
343 | IBFrameworkSource
344 | UIKit.framework/Headers/UIApplication.h
345 |
346 |
347 |
348 | UIResponder
349 | NSObject
350 |
351 |
352 |
353 | UISearchBar
354 | UIView
355 |
356 | IBFrameworkSource
357 | UIKit.framework/Headers/UISearchBar.h
358 |
359 |
360 |
361 | UISearchDisplayController
362 | NSObject
363 |
364 | IBFrameworkSource
365 | UIKit.framework/Headers/UISearchDisplayController.h
366 |
367 |
368 |
369 | UIView
370 |
371 | IBFrameworkSource
372 | UIKit.framework/Headers/UITextField.h
373 |
374 |
375 |
376 | UIView
377 | UIResponder
378 |
379 | IBFrameworkSource
380 | UIKit.framework/Headers/UIView.h
381 |
382 |
383 |
384 | UIViewController
385 |
386 | IBFrameworkSource
387 | UIKit.framework/Headers/UINavigationController.h
388 |
389 |
390 |
391 | UIViewController
392 |
393 | IBFrameworkSource
394 | UIKit.framework/Headers/UIPopoverController.h
395 |
396 |
397 |
398 | UIViewController
399 |
400 | IBFrameworkSource
401 | UIKit.framework/Headers/UISplitViewController.h
402 |
403 |
404 |
405 | UIViewController
406 |
407 | IBFrameworkSource
408 | UIKit.framework/Headers/UITabBarController.h
409 |
410 |
411 |
412 | UIViewController
413 | UIResponder
414 |
415 | IBFrameworkSource
416 | UIKit.framework/Headers/UIViewController.h
417 |
418 |
419 |
420 | UIWindow
421 | UIView
422 |
423 | IBFrameworkSource
424 | UIKit.framework/Headers/UIWindow.h
425 |
426 |
427 |
428 |
429 | 0
430 | IBCocoaTouchFramework
431 |
432 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
433 |
434 |
435 |
436 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
437 |
438 |
439 | YES
440 | CustomCalloutSample.xcodeproj
441 | 3
442 | 112
443 |
444 |
445 |
--------------------------------------------------------------------------------