├── Default-568h@2x.png
├── KTTextView-Sample.xcodeproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
└── project.pbxproj
├── KTTextView_Sample_Prefix.pch
├── main.m
├── Classes
├── KTTextView_SampleViewController.h
├── KTTextView_SampleAppDelegate.h
├── KTTextView_SampleViewController.m
├── KTTextView.h
├── KTTextView_SampleAppDelegate.m
└── KTTextView.m
├── KTTextView_Sample-Info.plist
├── LICENSE
├── README.md
├── KTTextView_SampleViewController.xib
└── MainWindow.xib
/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kirbyt/KTTextView/HEAD/Default-568h@2x.png
--------------------------------------------------------------------------------
/KTTextView-Sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/KTTextView_Sample_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'KTTextView-Sample' target in the 'KTTextView-Sample' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import
8 | #endif
9 |
--------------------------------------------------------------------------------
/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // KTTextView-Sample
4 | //
5 | // Created by Kirby Turner on 12/8/10.
6 | // Copyright 2010 __MyCompanyName__. 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 |
--------------------------------------------------------------------------------
/Classes/KTTextView_SampleViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView_SampleViewController.h
3 | // KTTextView-Sample
4 | //
5 | // Created by Kirby Turner on 12/8/10.
6 | // Copyright 2010 White Peak Software Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class KTTextView;
12 |
13 | @interface KTTextView_SampleViewController : UIViewController
14 | {
15 | KTTextView *_textView;
16 | }
17 |
18 | @property (nonatomic, retain) IBOutlet KTTextView *textView;
19 |
20 | @end
21 |
22 |
--------------------------------------------------------------------------------
/Classes/KTTextView_SampleAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView_SampleAppDelegate.h
3 | // KTTextView-Sample
4 | //
5 | // Created by Kirby Turner on 12/8/10.
6 | // Copyright 2010 White Peak Software Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class KTTextView_SampleViewController;
12 |
13 | @interface KTTextView_SampleAppDelegate : NSObject {
14 | UIWindow *window;
15 | KTTextView_SampleViewController *viewController;
16 | }
17 |
18 | @property (nonatomic, retain) IBOutlet UIWindow *window;
19 | @property (nonatomic, retain) IBOutlet KTTextView_SampleViewController *viewController;
20 |
21 | @end
22 |
23 |
--------------------------------------------------------------------------------
/KTTextView_Sample-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSMainNibFile
28 | MainWindow
29 |
30 |
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2010 White Peak Software Inc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Classes/KTTextView_SampleViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView_SampleViewController.m
3 | // KTTextView-Sample
4 | //
5 | // Created by Kirby Turner on 12/8/10.
6 | // Copyright 2010 White Peak Software Inc. All rights reserved.
7 | //
8 |
9 | #import "KTTextView_SampleViewController.h"
10 | #import "KTTextView.h"
11 |
12 | @implementation KTTextView_SampleViewController
13 |
14 | @synthesize textView = _textView;
15 |
16 | - (void)dealloc
17 | {
18 | [_textView release], _textView = nil;
19 | [super dealloc];
20 | }
21 |
22 | - (void)viewDidLoad
23 | {
24 | [super viewDidLoad];
25 |
26 | [_textView setPlaceholderText:@"Touch to add text."];
27 | }
28 |
29 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
30 | {
31 | return YES;
32 | }
33 |
34 | - (void)didReceiveMemoryWarning
35 | {
36 | // Releases the view if it doesn't have a superview.
37 | [super didReceiveMemoryWarning];
38 |
39 | // Release any cached data, images, etc that aren't in use.
40 | }
41 |
42 | - (void)viewDidUnload
43 | {
44 | // Release any retained subviews of the main view.
45 | // e.g. self.myOutlet = nil;
46 |
47 | [self setTextView:nil];
48 | }
49 |
50 |
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/Classes/KTTextView.h:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView.h
3 | //
4 | // Created by Kirby Turner on 10/29/10.
5 | // Copyright 2010 White Peak Software Inc. All rights reserved.
6 | //
7 | // The MIT License
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | // THE SOFTWARE.
26 | //
27 |
28 | #import
29 |
30 |
31 | @interface KTTextView : UITextView
32 | {
33 | UILabel *_placeholder;
34 | }
35 |
36 | @property (nonatomic, copy) NSString *placeholderText;
37 | @property (nonatomic, retain) UIColor *placeholderColor;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | KTTextView
2 | ==========
3 |
4 | KTTextView derives from UITextView enhancing it with new features. The only new feature at the moment is the **placeholderText** property. The **placeholderText** property works the same as UITextField's placeholder property.
5 |
6 |
7 | Using KTTextView
8 | ----------------
9 |
10 | To use KTTextView, copy the files KTTextView.h and KTTextView.m to your project. Replace UITextView in your source code and NIB files with KTTextView.
11 |
12 |
13 | Properties
14 | ----------
15 |
16 | **placeholderText**
17 |
18 | The string displayed when there is no other text in the text view.
19 |
20 | @property (nonatomic, copy) NSString *placeholderText;
21 |
22 |
23 | **placeholderColor**
24 |
25 | The color of the placeholder text. The default value is a light gray color.
26 |
27 | @property (nonatomic, retain) UIColor *placeholderColor;
28 |
29 |
30 | Screenshots
31 | -----------
32 |
33 | [](http://farm6.static.flickr.com/5049/5243475037_be5c5c998f_b.jpg)
34 |
35 |
36 | Automatic Reference Counting (ARC) Support
37 | ==========================================
38 |
39 | If you would like to use KTTextView in your ARC-enabled project, you must [add the `-fno-objc-arc` compiler flag](http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project) to the file KTTextView.m.
40 |
41 | License
42 | =======
43 |
44 | The MIT License
45 |
46 | Copyright (c) 2010 White Peak Software Inc
47 |
48 | Permission is hereby granted, free of charge, to any person obtaining a copy
49 | of this software and associated documentation files (the "Software"), to deal
50 | in the Software without restriction, including without limitation the rights
51 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
52 | copies of the Software, and to permit persons to whom the Software is
53 | furnished to do so, subject to the following conditions:
54 |
55 | The above copyright notice and this permission notice shall be included in
56 | all copies or substantial portions of the Software.
57 |
58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
59 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
60 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
61 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
62 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
63 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
64 | THE SOFTWARE.
--------------------------------------------------------------------------------
/Classes/KTTextView_SampleAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView_SampleAppDelegate.m
3 | // KTTextView-Sample
4 | //
5 | // Created by Kirby Turner on 12/8/10.
6 | // Copyright 2010 White Peak Software Inc. All rights reserved.
7 | //
8 |
9 | #import "KTTextView_SampleAppDelegate.h"
10 | #import "KTTextView_SampleViewController.h"
11 |
12 | @implementation KTTextView_SampleAppDelegate
13 |
14 | @synthesize window;
15 | @synthesize viewController;
16 |
17 |
18 | #pragma mark -
19 | #pragma mark Application lifecycle
20 |
21 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
22 |
23 | // Override point for customization after application launch.
24 |
25 | // Add the view controller's view to the window and display.
26 | [self.window addSubview:viewController.view];
27 | [self.window makeKeyAndVisible];
28 |
29 | return YES;
30 | }
31 |
32 |
33 | - (void)applicationWillResignActive:(UIApplication *)application {
34 | /*
35 | 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.
36 | 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.
37 | */
38 | }
39 |
40 |
41 | - (void)applicationDidEnterBackground:(UIApplication *)application {
42 | /*
43 | 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.
44 | If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
45 | */
46 | }
47 |
48 |
49 | - (void)applicationWillEnterForeground:(UIApplication *)application {
50 | /*
51 | Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
52 | */
53 | }
54 |
55 |
56 | - (void)applicationDidBecomeActive:(UIApplication *)application {
57 | /*
58 | 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.
59 | */
60 | }
61 |
62 |
63 | - (void)applicationWillTerminate:(UIApplication *)application {
64 | /*
65 | Called when the application is about to terminate.
66 | See also applicationDidEnterBackground:.
67 | */
68 | }
69 |
70 |
71 | #pragma mark -
72 | #pragma mark Memory management
73 |
74 | - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
75 | /*
76 | Free up as much memory as possible by purging cached data objects that can be recreated (or reloaded from disk) later.
77 | */
78 | }
79 |
80 |
81 | - (void)dealloc {
82 | [viewController release];
83 | [window release];
84 | [super dealloc];
85 | }
86 |
87 |
88 | @end
89 |
--------------------------------------------------------------------------------
/Classes/KTTextView.m:
--------------------------------------------------------------------------------
1 | //
2 | // KTTextView.m
3 | //
4 | // Created by Kirby Turner on 10/29/10.
5 | // Copyright 2010 White Peak Software Inc. All rights reserved.
6 | //
7 | // The MIT License
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | // THE SOFTWARE.
26 | //
27 |
28 | #import "KTTextView.h"
29 |
30 | @interface KTTextView ()
31 | @property (nonatomic, retain) UILabel *placeholder;
32 | @end
33 |
34 | @implementation KTTextView
35 |
36 | //@synthesize placeholderText = _placeholderText;
37 | //@synthesize placeholderColor = _placeholderColor;
38 | @synthesize placeholder = _placeholder;
39 |
40 | - (void)dealloc
41 | {
42 | [[NSNotificationCenter defaultCenter] removeObserver:self];
43 |
44 | [_placeholder release], _placeholder = nil;
45 |
46 | [super dealloc];
47 | }
48 |
49 | - (void)setup
50 | {
51 | if ([self placeholder]) {
52 | [[self placeholder] removeFromSuperview];
53 | [self setPlaceholder:nil];
54 | }
55 |
56 | CGRect frame = CGRectMake(8, 8, self.bounds.size.width - 16, 0.0);
57 | UILabel *placeholder = [[UILabel alloc] initWithFrame:frame];
58 | [placeholder setLineBreakMode:NSLineBreakByWordWrapping];
59 | [placeholder setNumberOfLines:0];
60 | [placeholder setBackgroundColor:[UIColor clearColor]];
61 | [placeholder setAlpha:1.0];
62 | [placeholder setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
63 | [placeholder setTextColor:[UIColor lightGrayColor]];
64 | [placeholder setText:@""];
65 | [self addSubview:placeholder];
66 | [self sendSubviewToBack:placeholder];
67 |
68 | [self setPlaceholder:placeholder];
69 | [placeholder release];
70 |
71 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
72 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getFocus:) name:UITextViewTextDidBeginEditingNotification object:nil];
73 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(lostFocus:) name:UITextViewTextDidEndEditingNotification object:nil];
74 | }
75 |
76 | - (void)awakeFromNib
77 | {
78 | [super awakeFromNib];
79 | [self setup];
80 | }
81 |
82 | - (id)initWithCoder:(NSCoder *)aDecoder
83 | {
84 | self = [super initWithCoder:aDecoder];
85 | if (self) {
86 | [self setup];
87 | }
88 | return self;
89 | }
90 |
91 | - (id)initWithFrame:(CGRect)frame
92 | {
93 | self = [super initWithFrame:frame];
94 | if (self) {
95 | [self setup];
96 | }
97 | return self;
98 | }
99 |
100 | - (void)textChanged:(NSNotification *)notification
101 | {
102 | if ([[_placeholder text] length] == 0) {
103 | return;
104 | }
105 |
106 | if ([[self text] length] == 0) {
107 | [_placeholder setAlpha:1.0];
108 | } else {
109 | [_placeholder setAlpha:0.0];
110 | }
111 | }
112 |
113 | - (void)getFocus:(NSNotification *)notification
114 | {
115 | [_placeholder setAlpha:0.0];
116 | }
117 |
118 | - (void)lostFocus:(NSNotification *)notification
119 | {
120 | if ([[self text] length] == 0) {
121 | [_placeholder setAlpha:1.0];
122 | } else {
123 | [_placeholder setAlpha:0.0];
124 | }
125 | }
126 |
127 | - (void)drawRect:(CGRect)rect
128 | {
129 | [super drawRect:rect];
130 | if ([[self text] length] == 0 && [[_placeholder text] length] > 0) {
131 | [_placeholder setAlpha:1.0];
132 | } else {
133 | [_placeholder setAlpha:0.0];
134 | }
135 | }
136 |
137 | - (void)setFont:(UIFont *)font
138 | {
139 | [super setFont:font];
140 | [_placeholder setFont:font];
141 | }
142 |
143 | - (NSString *)placeholderText
144 | {
145 | return [_placeholder text];
146 | }
147 |
148 | - (void)setPlaceholderText:(NSString *)placeholderText
149 | {
150 | [_placeholder setText:placeholderText];
151 |
152 | CGRect frame = _placeholder.frame;
153 | CGSize constraint = CGSizeMake(frame.size.width, 42.0f);
154 | NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
155 | paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
156 | paragraphStyle.alignment = NSTextAlignmentLeft;
157 |
158 | NSDictionary *attributes = @{NSFontAttributeName : self.font,
159 | NSParagraphStyleAttributeName : paragraphStyle};
160 | CGRect size = [placeholderText boundingRectWithSize:constraint options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];
161 |
162 | frame.size.height = size.size.height;
163 | [_placeholder setFrame:frame];
164 | }
165 |
166 | - (UIColor *)placeholderColor
167 | {
168 | return [_placeholder textColor];
169 | }
170 |
171 | - (void)setPlaceholderColor:(UIColor *)placeholderColor
172 | {
173 | [_placeholder setTextColor:placeholderColor];
174 | }
175 |
176 | @end
177 |
--------------------------------------------------------------------------------
/KTTextView-Sample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1D3623260D0F684500981E51 /* KTTextView_SampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* KTTextView_SampleAppDelegate.m */; };
11 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
12 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
13 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
14 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
15 | 2899E5220DE3E06400AC0155 /* KTTextView_SampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* KTTextView_SampleViewController.xib */; };
16 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
17 | 28D7ACF80DDB3853001CB0EB /* KTTextView_SampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* KTTextView_SampleViewController.m */; };
18 | 4CF9BD721A73F56A0022C380 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CF9BD711A73F56A0022C380 /* Default-568h@2x.png */; };
19 | 68F68E8612AFC80F002F32EE /* KTTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 68F68E8512AFC80F002F32EE /* KTTextView.m */; };
20 | 68F68EA712AFCB69002F32EE /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 68F68EA512AFCB69002F32EE /* LICENSE */; };
21 | 68F68EA812AFCB69002F32EE /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 68F68EA612AFCB69002F32EE /* README.md */; };
22 | /* End PBXBuildFile section */
23 |
24 | /* Begin PBXFileReference section */
25 | 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
26 | 1D3623240D0F684500981E51 /* KTTextView_SampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTTextView_SampleAppDelegate.h; sourceTree = ""; };
27 | 1D3623250D0F684500981E51 /* KTTextView_SampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KTTextView_SampleAppDelegate.m; sourceTree = ""; };
28 | 1D6058910D05DD3D006BFB54 /* KTTextView-Sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "KTTextView-Sample.app"; sourceTree = BUILT_PRODUCTS_DIR; };
29 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
30 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
31 | 2899E5210DE3E06400AC0155 /* KTTextView_SampleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KTTextView_SampleViewController.xib; sourceTree = ""; };
32 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
33 | 28D7ACF60DDB3853001CB0EB /* KTTextView_SampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTTextView_SampleViewController.h; sourceTree = ""; };
34 | 28D7ACF70DDB3853001CB0EB /* KTTextView_SampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KTTextView_SampleViewController.m; sourceTree = ""; };
35 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
36 | 32CA4F630368D1EE00C91783 /* KTTextView_Sample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTTextView_Sample_Prefix.pch; sourceTree = ""; };
37 | 4CF9BD711A73F56A0022C380 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
38 | 68F68E8412AFC80F002F32EE /* KTTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTTextView.h; sourceTree = ""; };
39 | 68F68E8512AFC80F002F32EE /* KTTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KTTextView.m; sourceTree = ""; };
40 | 68F68EA512AFCB69002F32EE /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; };
41 | 68F68EA612AFCB69002F32EE /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.md; sourceTree = ""; };
42 | 8D1107310486CEB800E47090 /* KTTextView_Sample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "KTTextView_Sample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; };
43 | /* End PBXFileReference section */
44 |
45 | /* Begin PBXFrameworksBuildPhase section */
46 | 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
47 | isa = PBXFrameworksBuildPhase;
48 | buildActionMask = 2147483647;
49 | files = (
50 | 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
51 | 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
52 | 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
53 | );
54 | runOnlyForDeploymentPostprocessing = 0;
55 | };
56 | /* End PBXFrameworksBuildPhase section */
57 |
58 | /* Begin PBXGroup section */
59 | 080E96DDFE201D6D7F000001 /* Classes */ = {
60 | isa = PBXGroup;
61 | children = (
62 | 68F68E8412AFC80F002F32EE /* KTTextView.h */,
63 | 68F68E8512AFC80F002F32EE /* KTTextView.m */,
64 | 1D3623240D0F684500981E51 /* KTTextView_SampleAppDelegate.h */,
65 | 1D3623250D0F684500981E51 /* KTTextView_SampleAppDelegate.m */,
66 | 28D7ACF60DDB3853001CB0EB /* KTTextView_SampleViewController.h */,
67 | 28D7ACF70DDB3853001CB0EB /* KTTextView_SampleViewController.m */,
68 | );
69 | path = Classes;
70 | sourceTree = "";
71 | };
72 | 19C28FACFE9D520D11CA2CBB /* Products */ = {
73 | isa = PBXGroup;
74 | children = (
75 | 1D6058910D05DD3D006BFB54 /* KTTextView-Sample.app */,
76 | );
77 | name = Products;
78 | sourceTree = "";
79 | };
80 | 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
81 | isa = PBXGroup;
82 | children = (
83 | 4CF9BD711A73F56A0022C380 /* Default-568h@2x.png */,
84 | 68F68EA512AFCB69002F32EE /* LICENSE */,
85 | 68F68EA612AFCB69002F32EE /* README.md */,
86 | 080E96DDFE201D6D7F000001 /* Classes */,
87 | 29B97315FDCFA39411CA2CEA /* Other Sources */,
88 | 29B97317FDCFA39411CA2CEA /* Resources */,
89 | 29B97323FDCFA39411CA2CEA /* Frameworks */,
90 | 19C28FACFE9D520D11CA2CBB /* Products */,
91 | );
92 | name = CustomTemplate;
93 | sourceTree = "";
94 | };
95 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
96 | isa = PBXGroup;
97 | children = (
98 | 32CA4F630368D1EE00C91783 /* KTTextView_Sample_Prefix.pch */,
99 | 29B97316FDCFA39411CA2CEA /* main.m */,
100 | );
101 | name = "Other Sources";
102 | sourceTree = "";
103 | };
104 | 29B97317FDCFA39411CA2CEA /* Resources */ = {
105 | isa = PBXGroup;
106 | children = (
107 | 2899E5210DE3E06400AC0155 /* KTTextView_SampleViewController.xib */,
108 | 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
109 | 8D1107310486CEB800E47090 /* KTTextView_Sample-Info.plist */,
110 | );
111 | name = Resources;
112 | sourceTree = "";
113 | };
114 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
115 | isa = PBXGroup;
116 | children = (
117 | 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
118 | 1D30AB110D05D00D00671497 /* Foundation.framework */,
119 | 288765A40DF7441C002DB57D /* CoreGraphics.framework */,
120 | );
121 | name = Frameworks;
122 | sourceTree = "";
123 | };
124 | /* End PBXGroup section */
125 |
126 | /* Begin PBXNativeTarget section */
127 | 1D6058900D05DD3D006BFB54 /* KTTextView-Sample */ = {
128 | isa = PBXNativeTarget;
129 | buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "KTTextView-Sample" */;
130 | buildPhases = (
131 | 1D60588D0D05DD3D006BFB54 /* Resources */,
132 | 1D60588E0D05DD3D006BFB54 /* Sources */,
133 | 1D60588F0D05DD3D006BFB54 /* Frameworks */,
134 | );
135 | buildRules = (
136 | );
137 | dependencies = (
138 | );
139 | name = "KTTextView-Sample";
140 | productName = "KTTextView-Sample";
141 | productReference = 1D6058910D05DD3D006BFB54 /* KTTextView-Sample.app */;
142 | productType = "com.apple.product-type.application";
143 | };
144 | /* End PBXNativeTarget section */
145 |
146 | /* Begin PBXProject section */
147 | 29B97313FDCFA39411CA2CEA /* Project object */ = {
148 | isa = PBXProject;
149 | attributes = {
150 | LastUpgradeCheck = 0610;
151 | ORGANIZATIONNAME = "White Peak Software Inc";
152 | };
153 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "KTTextView-Sample" */;
154 | compatibilityVersion = "Xcode 3.2";
155 | developmentRegion = English;
156 | hasScannedForEncodings = 1;
157 | knownRegions = (
158 | English,
159 | Japanese,
160 | French,
161 | German,
162 | );
163 | mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
164 | projectDirPath = "";
165 | projectRoot = "";
166 | targets = (
167 | 1D6058900D05DD3D006BFB54 /* KTTextView-Sample */,
168 | );
169 | };
170 | /* End PBXProject section */
171 |
172 | /* Begin PBXResourcesBuildPhase section */
173 | 1D60588D0D05DD3D006BFB54 /* Resources */ = {
174 | isa = PBXResourcesBuildPhase;
175 | buildActionMask = 2147483647;
176 | files = (
177 | 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
178 | 2899E5220DE3E06400AC0155 /* KTTextView_SampleViewController.xib in Resources */,
179 | 68F68EA712AFCB69002F32EE /* LICENSE in Resources */,
180 | 4CF9BD721A73F56A0022C380 /* Default-568h@2x.png in Resources */,
181 | 68F68EA812AFCB69002F32EE /* README.md in Resources */,
182 | );
183 | runOnlyForDeploymentPostprocessing = 0;
184 | };
185 | /* End PBXResourcesBuildPhase section */
186 |
187 | /* Begin PBXSourcesBuildPhase section */
188 | 1D60588E0D05DD3D006BFB54 /* Sources */ = {
189 | isa = PBXSourcesBuildPhase;
190 | buildActionMask = 2147483647;
191 | files = (
192 | 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
193 | 1D3623260D0F684500981E51 /* KTTextView_SampleAppDelegate.m in Sources */,
194 | 28D7ACF80DDB3853001CB0EB /* KTTextView_SampleViewController.m in Sources */,
195 | 68F68E8612AFC80F002F32EE /* KTTextView.m in Sources */,
196 | );
197 | runOnlyForDeploymentPostprocessing = 0;
198 | };
199 | /* End PBXSourcesBuildPhase section */
200 |
201 | /* Begin XCBuildConfiguration section */
202 | 1D6058940D05DD3E006BFB54 /* Debug */ = {
203 | isa = XCBuildConfiguration;
204 | buildSettings = {
205 | ALWAYS_SEARCH_USER_PATHS = NO;
206 | COPY_PHASE_STRIP = NO;
207 | GCC_DYNAMIC_NO_PIC = NO;
208 | GCC_OPTIMIZATION_LEVEL = 0;
209 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
210 | GCC_PREFIX_HEADER = KTTextView_Sample_Prefix.pch;
211 | INFOPLIST_FILE = "KTTextView_Sample-Info.plist";
212 | IPHONEOS_DEPLOYMENT_TARGET = 6.0;
213 | LD_NO_PIE = YES;
214 | PRODUCT_NAME = "KTTextView-Sample";
215 | TARGETED_DEVICE_FAMILY = "1,2";
216 | };
217 | name = Debug;
218 | };
219 | 1D6058950D05DD3E006BFB54 /* Release */ = {
220 | isa = XCBuildConfiguration;
221 | buildSettings = {
222 | ALWAYS_SEARCH_USER_PATHS = NO;
223 | COPY_PHASE_STRIP = YES;
224 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
225 | GCC_PREFIX_HEADER = KTTextView_Sample_Prefix.pch;
226 | INFOPLIST_FILE = "KTTextView_Sample-Info.plist";
227 | IPHONEOS_DEPLOYMENT_TARGET = 6.0;
228 | LD_NO_PIE = YES;
229 | PRODUCT_NAME = "KTTextView-Sample";
230 | TARGETED_DEVICE_FAMILY = "1,2";
231 | VALIDATE_PRODUCT = YES;
232 | };
233 | name = Release;
234 | };
235 | C01FCF4F08A954540054247B /* Debug */ = {
236 | isa = XCBuildConfiguration;
237 | buildSettings = {
238 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
239 | GCC_C_LANGUAGE_STANDARD = c99;
240 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
241 | GCC_WARN_UNUSED_VARIABLE = YES;
242 | LD_NO_PIE = YES;
243 | ONLY_ACTIVE_ARCH = YES;
244 | SDKROOT = iphoneos;
245 | };
246 | name = Debug;
247 | };
248 | C01FCF5008A954540054247B /* Release */ = {
249 | isa = XCBuildConfiguration;
250 | buildSettings = {
251 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
252 | GCC_C_LANGUAGE_STANDARD = c99;
253 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
254 | GCC_WARN_UNUSED_VARIABLE = YES;
255 | LD_NO_PIE = YES;
256 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
257 | SDKROOT = iphoneos;
258 | };
259 | name = Release;
260 | };
261 | /* End XCBuildConfiguration section */
262 |
263 | /* Begin XCConfigurationList section */
264 | 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "KTTextView-Sample" */ = {
265 | isa = XCConfigurationList;
266 | buildConfigurations = (
267 | 1D6058940D05DD3E006BFB54 /* Debug */,
268 | 1D6058950D05DD3E006BFB54 /* Release */,
269 | );
270 | defaultConfigurationIsVisible = 0;
271 | defaultConfigurationName = Release;
272 | };
273 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "KTTextView-Sample" */ = {
274 | isa = XCConfigurationList;
275 | buildConfigurations = (
276 | C01FCF4F08A954540054247B /* Debug */,
277 | C01FCF5008A954540054247B /* Release */,
278 | );
279 | defaultConfigurationIsVisible = 0;
280 | defaultConfigurationName = Release;
281 | };
282 | /* End XCConfigurationList section */
283 | };
284 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
285 | }
286 |
--------------------------------------------------------------------------------
/KTTextView_SampleViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 10H574
6 | 823
7 | 1038.35
8 | 461.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 |
44 | YES
45 |
46 |
47 | 274
48 | {320, 460}
49 |
50 |
51 | 1
52 | MSAxIDEAA
53 |
54 | YES
55 | YES
56 | IBCocoaTouchFramework
57 |
58 |
59 | 2
60 | IBCocoaTouchFramework
61 |
62 |
63 |
64 | {320, 460}
65 |
66 |
67 | 3
68 | MC43NQA
69 |
70 | 2
71 |
72 |
73 | NO
74 |
75 | IBCocoaTouchFramework
76 |
77 |
78 |
79 |
80 | YES
81 |
82 |
83 | view
84 |
85 |
86 |
87 | 7
88 |
89 |
90 |
91 | textView
92 |
93 |
94 |
95 | 9
96 |
97 |
98 |
99 |
100 | YES
101 |
102 | 0
103 |
104 |
105 |
106 |
107 |
108 | -1
109 |
110 |
111 | File's Owner
112 |
113 |
114 | -2
115 |
116 |
117 |
118 |
119 | 6
120 |
121 |
122 | YES
123 |
124 |
125 |
126 |
127 |
128 | 8
129 |
130 |
131 |
132 |
133 |
134 |
135 | YES
136 |
137 | YES
138 | -1.CustomClassName
139 | -2.CustomClassName
140 | 6.IBEditorWindowLastContentRect
141 | 6.IBPluginDependency
142 | 8.CustomClassName
143 | 8.IBPluginDependency
144 |
145 |
146 | YES
147 | KTTextView_SampleViewController
148 | UIResponder
149 | {{239, 376}, {320, 480}}
150 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
151 | KTTextView
152 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
153 |
154 |
155 |
156 | YES
157 |
158 |
159 | YES
160 |
161 |
162 |
163 |
164 | YES
165 |
166 |
167 | YES
168 |
169 |
170 |
171 | 9
172 |
173 |
174 |
175 | YES
176 |
177 | KTTextView
178 | UITextView
179 |
180 | IBProjectSource
181 | Classes/KTTextView.h
182 |
183 |
184 |
185 | KTTextView_SampleViewController
186 | UIViewController
187 |
188 | textView
189 | KTTextView
190 |
191 |
192 | textView
193 |
194 | textView
195 | KTTextView
196 |
197 |
198 |
199 | IBProjectSource
200 | Classes/KTTextView_SampleViewController.h
201 |
202 |
203 |
204 |
205 | YES
206 |
207 | NSObject
208 |
209 | IBFrameworkSource
210 | Foundation.framework/Headers/NSError.h
211 |
212 |
213 |
214 | NSObject
215 |
216 | IBFrameworkSource
217 | Foundation.framework/Headers/NSFileManager.h
218 |
219 |
220 |
221 | NSObject
222 |
223 | IBFrameworkSource
224 | Foundation.framework/Headers/NSKeyValueCoding.h
225 |
226 |
227 |
228 | NSObject
229 |
230 | IBFrameworkSource
231 | Foundation.framework/Headers/NSKeyValueObserving.h
232 |
233 |
234 |
235 | NSObject
236 |
237 | IBFrameworkSource
238 | Foundation.framework/Headers/NSKeyedArchiver.h
239 |
240 |
241 |
242 | NSObject
243 |
244 | IBFrameworkSource
245 | Foundation.framework/Headers/NSObject.h
246 |
247 |
248 |
249 | NSObject
250 |
251 | IBFrameworkSource
252 | Foundation.framework/Headers/NSRunLoop.h
253 |
254 |
255 |
256 | NSObject
257 |
258 | IBFrameworkSource
259 | Foundation.framework/Headers/NSThread.h
260 |
261 |
262 |
263 | NSObject
264 |
265 | IBFrameworkSource
266 | Foundation.framework/Headers/NSURL.h
267 |
268 |
269 |
270 | NSObject
271 |
272 | IBFrameworkSource
273 | Foundation.framework/Headers/NSURLConnection.h
274 |
275 |
276 |
277 | NSObject
278 |
279 | IBFrameworkSource
280 | UIKit.framework/Headers/UIAccessibility.h
281 |
282 |
283 |
284 | NSObject
285 |
286 | IBFrameworkSource
287 | UIKit.framework/Headers/UINibLoading.h
288 |
289 |
290 |
291 | NSObject
292 |
293 | IBFrameworkSource
294 | UIKit.framework/Headers/UIResponder.h
295 |
296 |
297 |
298 | UIResponder
299 | NSObject
300 |
301 |
302 |
303 | UIScrollView
304 | UIView
305 |
306 | IBFrameworkSource
307 | UIKit.framework/Headers/UIScrollView.h
308 |
309 |
310 |
311 | UISearchBar
312 | UIView
313 |
314 | IBFrameworkSource
315 | UIKit.framework/Headers/UISearchBar.h
316 |
317 |
318 |
319 | UISearchDisplayController
320 | NSObject
321 |
322 | IBFrameworkSource
323 | UIKit.framework/Headers/UISearchDisplayController.h
324 |
325 |
326 |
327 | UITextView
328 | UIScrollView
329 |
330 | IBFrameworkSource
331 | UIKit.framework/Headers/UITextView.h
332 |
333 |
334 |
335 | UIView
336 |
337 | IBFrameworkSource
338 | UIKit.framework/Headers/UIPrintFormatter.h
339 |
340 |
341 |
342 | UIView
343 |
344 | IBFrameworkSource
345 | UIKit.framework/Headers/UITextField.h
346 |
347 |
348 |
349 | UIView
350 | UIResponder
351 |
352 | IBFrameworkSource
353 | UIKit.framework/Headers/UIView.h
354 |
355 |
356 |
357 | UIViewController
358 |
359 | IBFrameworkSource
360 | UIKit.framework/Headers/UINavigationController.h
361 |
362 |
363 |
364 | UIViewController
365 |
366 | IBFrameworkSource
367 | UIKit.framework/Headers/UIPopoverController.h
368 |
369 |
370 |
371 | UIViewController
372 |
373 | IBFrameworkSource
374 | UIKit.framework/Headers/UISplitViewController.h
375 |
376 |
377 |
378 | UIViewController
379 |
380 | IBFrameworkSource
381 | UIKit.framework/Headers/UITabBarController.h
382 |
383 |
384 |
385 | UIViewController
386 | UIResponder
387 |
388 | IBFrameworkSource
389 | UIKit.framework/Headers/UIViewController.h
390 |
391 |
392 |
393 |
394 | 0
395 | IBCocoaTouchFramework
396 |
397 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
398 |
399 |
400 |
401 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
402 |
403 |
404 | YES
405 | KTTextView-Sample.xcodeproj
406 | 3
407 | 132
408 |
409 |
410 |
--------------------------------------------------------------------------------
/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 | KTTextView_SampleViewController
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 | KTTextView_Sample 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 | KTTextView_SampleViewController
152 | {{234, 376}, {320, 480}}
153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
154 | {{525, 346}, {320, 480}}
155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
156 | KTTextView_SampleAppDelegate
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 | KTTextView_SampleAppDelegate
191 | NSObject
192 |
193 | YES
194 |
195 | YES
196 | viewController
197 | window
198 |
199 |
200 | YES
201 | KTTextView_SampleViewController
202 | UIWindow
203 |
204 |
205 |
206 | YES
207 |
208 | YES
209 | viewController
210 | window
211 |
212 |
213 | YES
214 |
215 | viewController
216 | KTTextView_SampleViewController
217 |
218 |
219 | window
220 | UIWindow
221 |
222 |
223 |
224 |
225 | IBProjectSource
226 | Classes/KTTextView_SampleAppDelegate.h
227 |
228 |
229 |
230 | KTTextView_SampleAppDelegate
231 | NSObject
232 |
233 | IBUserSource
234 |
235 |
236 |
237 |
238 | KTTextView_SampleViewController
239 | UIViewController
240 |
241 | IBProjectSource
242 | Classes/KTTextView_SampleViewController.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 | KTTextView-Sample.xcodeproj
441 | 3
442 | 112
443 |
444 |
445 |
--------------------------------------------------------------------------------