1

私にはサブビューViewControllerが含まれています:

サブUIViewは( NameSubViewControllerclass with XIB) にあります。

サブビューにはUITextField.


このアクションを追加しました:

- (IBAction)textFieldReturn:(id)sender;

クラスでNameSubViewController、XIB のファイル所有者からテキストフィールド (終了時に終了) に接続しました。

しかし、リターンを押すとログにエラーメッセージが表示され、シミュレーターでは何も起こりません。

これは関連するコードです:


ViewController.h:

@property (nonatomic, strong) UIView *nameSubView;

ViewController.m (viewDidLoad):

UIViewController *nameController = [[NameSubViewController alloc] initWithNibName:@"NameSubViewController" bundle:nil];
nameSubView = [nameController view];

[self.view addSubview:nameSubView];

NameSubViewController.h:

#import <UIKit/UIKit.h>

@interface NameSubViewController : UIViewController

@property (nonatomic, strong) IBOutlet UITextField *textField;

- (IBAction)textFieldReturn:(id)sender;
//Not working.. Connected from files owner to textField with option didEndOnExit

NameSubViewController.m:

-(IBAction)textFieldReturn:(id)sender
{
[sender resignFirstResponder];
} 

Return キーを押すと、ログに次のメッセージが表示されます。

AppName[6656:f803] -[CALayer textFieldReturn:]: unrecognized selector sent to instance 0x6e99d40 2012-08-28 02:51:26.954 AppName[6656:f803] *** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInvalidArgumentException> -[CALayer textFieldReturn:]: unrecognized selector sent to instance 0x6e99d40

キーボードは閉じられません。問題の原因は何ですか?

ビューコントローラー:

http://www.flickr.com/photos/80427098@N07/7877111708/in/photostream

NameSubViewController、ViewController の subView に表示されるビュー:

http://www.flickr.com/photos/80427098@N07/7877111596/in/photostream

4

2 に答える 2

1

デリゲートを CALayer にするつもりですか? [CALayer textFieldReturn:]

今、そうです。

于 2012-08-28T01:30:30.387 に答える
0

私はついに自分で解決策を見つけました。NameSubViewController のクラスを作成しUIView、textfieldReturn コードを UIView クラスに配置するだけで済みました。

#import <UIKit/UIKit.h>

@interface NameSubView : UIView

@property (nonatomic, strong) IBOutlet UITextField *textField;

- (IBAction)textFieldReturn:(id)sender;

@end

そして、キーボードは正常に戻ってきました!サブビューView Controllerなしで、 UIViewのみがメインビューのサブビューとしてロードされるため、理にかなっています。ViewController は別のビューのサブビューであってはならず、そのビューのみであるべきであるため、サブビューの UIView クラスにコードを記述する必要があります。サブビュー UIViewController クラスではありません!

于 2012-08-28T12:13:58.043 に答える