0

Xcode 5.0 で iOS 4.3 バージョンから動作する iOS(iPad および iPhone) アプリを作成しようとしています。

私のプロジェクトを TESTING と呼びましょう。

これが私がやったことです:

  1. プロジェクト テスト、情報、iOS 展開ターゲット セット 4.3
  2. ストーリーボードを削除 -> iOS 5.0 バージョンからサポートされたため
  3. 自動レイアウトを削除 -> iOS 6.0 バージョンからサポートされたため
  4. Window、View、または Application の TESTING-Info.plist に「メイン nib ファイルのベース名」を正しく追加しました。
  5. XIBファイルを追加しました。これが問題の始まりです

何を追加する必要がありますか: Window、View、または Application ?

私はすべてを試しましたが、結果は次のとおりです。

ビュー -> ビューが表示されません (テキスト フィールド、ラベルなどのコントロールをいくつか追加しました)

アプリケーションとウィンドウはシミュレーターで正常に動作しています。

しかし、iPhone (iOS 6.x) ではテキスト フィールドが機能せず、キーボードが少し表示され、入力を受け付けません。

正しく行う方法は?

4

3 に答える 3

2

現在の iOS の状態を考えると、Apple は、新しいアプリが iOS 7 以外をサポートする必要はないと示唆しています。これは少し非現実的ですが、iOS 6 より前は何もサポートする必要がないことをお勧めします。iOS より前のサポート5 は、重要なアプリにとって非常に問題になります。

これは現時点ではあなたの問題ではないようですが、iOS <5: ARC をサポートする大きな問題があります。ARCstrong参照はコンパイラ機能であり、iOS 4 用に簡単にコンパイルできますが、ARCweak参照には OS のサポートと協力が必要です。__unsafe_unretainまたはassign、弱い参照を使用する可能性のある場所を使用して、これを回避できます。これにはいくつかの制限がありますが、通常は機能します。

UITextFieldまた、iOS 7 SDK でコンパイルすると、iOS 6.x に適用されるバグに遭遇したことにも注意してください。バグは、フィールドにテキストがない場合、代わりに がtextField.text返されることです。これは大きな問題ではありません。nil@""textField.text = [textField.text stringByAppendingString:@"1"];[nil anything]nil

于 2013-10-19T13:50:54.567 に答える
1
  1. ファイルの所有者を に設定しますUIApplication
  2. NSObjectそのクラスを App Delegate に追加して設定します。
  3. UIApplication.delegateApp Delegate オブジェクトに接続します。

  4. 追加UIWindowて、 [Visible at Launch]がオンになっていることを確認します。これにより、誤ったテキスト入力動作が発生する可能性があります。

  5. ウィンドウを App Delegatewindowプロパティに接続します。


編集 1 : 人々がこの XIB を気にする理由がわかりません。同等のコードは次のとおりです。

  • main.m

    return UIApplicationMain(argc, argv, nil, @"YourAppDelegate"));
    
  • -application:didFinishLaunchingWithOptions:

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window makeKeyAndVisible];
    

編集 2 :ニールは、古い iOS バージョンのサポートについては正しいです。なぜ iOS 4.3 をサポートする必要があるのですか?

于 2013-10-19T14:06:25.007 に答える