2011-02-10 5 views
0

私には2つの問題があります。私はクラス "myfirstclass.m"を作成し、私の "projectController.m"に私はUITextFieldを作成しますtxt。 "myfirstclass.m"には、txtをパラメータとするメソッドがあります。クラス内でメソッドを呼び出す場合:UITextField becomeFirstResponderとオーバーラップサブビュー

[txt becomeFirstResponder]; 

これは機能しません。明らかに "myfirstclass.m"はNSObjectを拡張し、 "projectController.m"はを拡張します。UIViewController。どうすれば解決できますか?同じクラス "myfirstclass.m"で別のメソッドUITextFieldを作成し、それがプリンシパルビューに追加され、この現在のtextFieldが最初のレスポンダになったことが示されている場合です。

私はUIButtonとUITextFieldを持っています。私はそれらを広告ビューに追加したいと思います。UITextFieldは前面に表示され、UIButtonはバックグラウンドで表示されます。私は今、UITextFiledのプロパティによって背景画像を設定できますが、UITextFieldより大きいUIButonが必要ですが、そのUIButtonが背景でUITextFieldが前面になるようにします。

ありがとうございます!

答えて

0

最初の質問に:私はあなたがインターフェイスビルダーを使用していると仮定しています。 UITextFieldがUIViewControllerサブクラスの対応するコンセントに接続されていることを確認します。インタフェースビルダーでアウトレットに接続することを忘れると、画面に表示されない、またはコード内で正しく応答しないオブジェクトで最も一般的な問題です。

+0

いいえ、私はすべてコードで作成します。 D – Andrea

+0

私は "projectController"にない "myFirstClass"のbecomeFirstResponderを実行します – Andrea

+0

OKこれで問題は非常に小さい再現可能なテストケースで繰り返され、コードを投稿します。 – Bogatyr

0

これはサンプル擬似コードである:

projectController.m

#import "myFirstClass.h" 

UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(0,38,194,37)]; 
myFirstClass *ojb = [[myFirstClass alloc] init]; 
[obj sendTxt:txt]; 

myFirstClass.m

- (void) sendTxt:(UITextField *text) { 
UITextField *txt = text; 
[txt becomeFirstResponder]; 
} 

"myfirstclass.m" はNSObjectのおよび "projectController.m" 延びを拡張UIViewController。

関連する問題