シェイクイベントをキャプチャするために(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)eventを使用しようとすると、少し問題が発生します。問題は、canBecomeFirstResponderをオーバーライドして、YESを返すように設定しても、関数が実行されていないことです。この問題に関する他の人の投稿を見たことがありますが、答えは見つかりませんでした。
助けてくれてありがとう!
最初の例.h(UIViewから継承されたクラス-アプリデリゲートクラスから「呼び出された」){
@class TestApplicationView;
@interface TestApplicationView : UIView {
IBOutlet UIView *view;
}
}
最初の例.m{
- (id)initWithCoder:(NSCoder *)coder
{
[self setUpView];
return self;
}
- (id)initWithFrame:(CGRect)frame
{
[self setUpView];
return self;
}
- (void)setUpView
{
[self becomeFirstResponder];
NSLog(@"First Responder - %d", [self isFirstResponder]);
}
}
2番目の例.h(UIApplicationDelegateおよびUIScrollViewDelegateから継承されたクラス){
#import <UIKit/UIKit.h>
@class TestApplicationViewController;
@interface TestApplicationAppDelegate : NSObject <UIApplicationDelegate, UIScrollViewDelegate> {
IBOutlet UIWindow *window;
IBOutlet UIScrollView *scrollView;
}
}
2番目の例.m{
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[self becomeFirstResponder];
}
}
--2番目の例は、次の警告を返します。'TestApplicationAppDelegate'は'-becomeFirstResponder'に応答しない可能性があります