我正在尝试制作适用于Xcode 5.0的iOS 4.3版本的iOS(iPad和iPhone)应用程序。
让我们调用我的项目TESTING。
这就是我所做的:
我应该添加什么:窗口,视图或应用程序?
我已经尝试了所有这些结果:
查看 - >不会显示View(我添加了一些控件,如:text field,label)
应用程序和窗口在模拟器中工作正常。
但是在iPhone(iOS 6.x)文本字段不起作用,键盘显示位不接受输入。
如何正确地做到这一点?
答案 0 :(得分:2)
目前iOS的状态,Apple建议新的应用程序不需要支持除iOS 7之外的任何内容。这似乎有点不切实际,但我建议您在iOS 6之前不需要支持任何内容。在iOS 5之前,任何非平凡的应用程序都会出现问题。
虽然目前这似乎不是您的问题,但支持iOS< 5:ARC的问题仍然存在。 ARC strong
引用是一个编译器功能,可以很容易地为iOS 4编译,但ARC weak
引用需要OS支持和合作。您可以使用__unsafe_unretain
或assign
解决此问题,否则您可能会使用弱引用。这有一些限制,但它通常有效。
另外值得注意的是,我在使用iOS 7 SDK编译时遇到了UITextField
的错误,该错误适用于iOS 6.x.该错误是如果该字段没有文字,textField.text
会返回nil
而不是@""
。这不是一个大问题,但如果您执行textField.text = [textField.text stringByAppendingString:@"1"];
之类的操作,则值永远不会增长,因为[nil anything]
始终返回nil
。
答案 1 :(得分:1)
近95%的设备使用iOS 6或iOS 7.对于使用Xcode 5而不是从iOS 4.3开始的95%设备更容易开发。
答案 2 :(得分:1)
UIApplication
。NSObject
并将其类设置为您的App Delegate。将UIApplication.delegate
与App Delegate对象连接。
添加UIWindow
和确保选中启动时可见 。这可能会导致错误的文本输入行为。
使用App Delegate window
属性连接窗口。
编辑1 :我不明白为什么人们会为这个XIB烦恼。这是等效的代码:
在main.m
:
return UIApplicationMain(argc, argv, nil, @"YourAppDelegate"));
在-application:didFinishLaunchingWithOptions:
:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];
编辑2 : Neal 是支持旧iOS版本的。为什么你需要支持iOS 4.3,我的上帝?!