[解決済み] UITableViewのスクロール時にキーボードを隠す
2022-06-02 20:15:14
質問
私のアプリでは、UITableViewをスクロールし始めると、キーボードを隠したいです。私はインターネットでこのことについて検索し、ほとんどの答えは、UITableViewのサブクラス(http://stackoverflow.com/questions/3499810/tapping-a-uiscrollview-to-hide-the-keyboard)です。
私はサブクラスを作成しましたが、それは動作しません。
#import <UIKit/UIKit.h>
@protocol MyUITableViewDelegate <NSObject>
@optional
- (void)myUITableViewTouchesBegan;
@end
@interface MyUITableView : UITableView <UITableViewDelegate, UIScrollViewDelegate> {
id<MyUITableViewDelegate> delegate;
}
@end
.mファイル
#import "MyUITableView.h"
@implementation MyUITableView
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"delegate scrollView"); //this is dont'work
[super scrollViewDidScroll:scrollView];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"delegate myUITableViewTouchesBegan"); // work only here
[delegate myUITableViewTouchesBegan];
[super touchesBegan:touches withEvent:event];
}
- (void)dealloc {
...
このクラスはこんな感じで使っています。しかし、デリゲート関数myUITableViewTouchesBeganはViewControllerでは動きません。
.h
#import <UIKit/UIKit.h>
#import "MyUITableView.h"
@interface FirstViewController : UIViewController <UITableViewDelegate, UISearchBarDelegate, MyUITableViewDelegate> {
MyUITableView *myTableView;
UISearchBar *searchBar;
}
@property(nonatomic,retain) IBOutlet MyUITableView *myTableView;
...
.m
- (void) myUITableViewTouchesBegan{
NSLog(@"myUITableViewTouchesBegan");
[searchBar resignFirstResponder];
}
この実装で困っていることがあります。
1) myUITableViewTouchesBeganがViewControllerで動作しない。
2) MyUITableView.mからのNSLog -。
NSLog(@"delegate myUITableViewTouchesBegan");
は、テーブルをタッチしたときだけ動作します。スクロールを開始したときにも動作するようにするにはどうしたらよいでしょうか。
scrollViewDidScrollをオーバーライドしてみましたが、MyUITableVIewがこの文字列に反応しない可能性があるとのことです。
[super scrollViewDidScroll:scrollView]と表示されます。
どのように解決するのですか?
なぜ、このためにUITableViewをサブクラス化する必要があるのか、よくわかりません。
プレーンなUITableViewを含むビューコントローラに、これを追加してみてください。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[searchBar resignFirstResponder];
}
関連
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] JavaScriptでページの一番上までスクロールする?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] UITableView - トップにスクロールする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする