これは非常に単純な質問のように思えるかもしれませんが、簡単なオプションをまだ見つけることができませんでした...
一連の UITextFields の後に UITextView があります。以下の同じ方法で TextFields と TextView をどのように組み込むことができますか。
-(BOOL) textFieldDidBeginEditing:(UITextField *) textField{
textField = activeField;
if([self.textField1 isFirstResponder]){activeField = textField1;}
else if([self.textField2 isFirstResponder]){activeField = textField2;}
else if([self.textField3 isFirstResponder]){activeField = textField3;}
else if([self.textView1 isFirstResponder]){ activeField = textView1;}
[scrollView1 scrollRectToVisible:[activeField frame] animated:YES];
return NO;
}
最後の行により、次の警告が発生します。
「UITextView * _strong」から「 UITextField *_strong」に代入する互換性のないポインター型
これは、(確かに) UITextField と UITextView が異なるオブジェクトであるという明白な事実によるものです...これは問題ありませんが、textFields と TextViews を進めたいので、これを回避する方法があります次と前のボタンで。
この方法に従って
-(void) nextTextField:(id)sender{
if([self.textField1 isFirstResponder]){activeField = textField2;}
else if([self.textField2 isFirstResponder]){activeField = textField3;}
else if([self.textField3 isFirstResponder]){activeField = textView1;}
else if([self.textView1 isFirstResponder]){ activeField = textField1;}
}
キャストのようなオプションを望んでいましたが、目的の C でキャストする方法について少し混乱しています...これはばかげているように聞こえるかもしれませんが、
activeField = ((UITextField) textView1);
Javaでキャストする方法ですが、構文を正しく取得できないようです。
どちらもそれを継承しているため、UIView にキャストする必要がありますか?
前もって感謝します