を使用してテキスト フィールドでキーボードを非表示にしたいの
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
ですが、テキスト ビューでも同じことを行う必要があるため、 を使用します- (BOOL)textViewShouldReturn:(UITextView *)textView {
。それらを同じ AppDelegate にまとめることは可能ですか?
ありがとうございました。
を使用してテキスト フィールドでキーボードを非表示にしたいの
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
ですが、テキスト ビューでも同じことを行う必要があるため、 を使用します- (BOOL)textViewShouldReturn:(UITextView *)textView {
。それらを同じ AppDelegate にまとめることは可能ですか?
ありがとうございました。
はい、2 人の代理人を持つことができます
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
プロトコル UITextViewDelegateには、このようなものはありません。
- (BOOL)textViewShouldReturn:(UITextView *)textView {
UITextViewDelegate プロトコル、
編集1:
キーボードを非表示にするボタン押下イベント。
-(IBAction) yourButtonPressed:(id)sender;{
for(UIView *v in self.view.subviews){
if([v isKindOfClass:[UITextField class]] || [v isKindOfClass:[UITextView class]]){
if([v isFirstResponder]){
[v resignFirstResponder];
break;
}
}
}
}
私はあなたの質問を完全には理解していません...基本的には次のことを行います:
UITextFieldDelegate
andUITextViewDelegate
をviewControllerに実装するそのデリゲートのメソッドを実装します。必要/必要です
rejectFirstResponder / endTextField / textView の任意の場所での編集
はい、UITextView では注意が必要です。著書に書いてある通り…
http://www.apeth.com/iOSBook/ch23.html#_uitextview
…iPadではキーボード右下のボタンでキーボードを消すことができるので、キーボードを消す問題は発生しません。したがって、これでiPhoneだけが残ります。通常、[完了] ボタンなどがあるようなインターフェイスがあります。たとえば、メモアプリがこれをどのように解決するかを見てください。
プロセス自体はまったく同じです。endEditing:
スーパービューを呼び出すと、最初の応答者は誰でも最初の応答者ではなくなり、キーボードは引退します。
はい、同じアプリケーションで textfield デリゲートと textview デリゲートを使用できます。
テキストフィールド:
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
// This allocates the textfield and sets its frame (or) you can use interfaceBuild
UITextField *textField = [[UITextField alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
textField.delegate=self;
// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder]; // this is event for hide keyboard.
return YES;
}
テキストビュー:
// init
UITextView *textView = [[UITextView alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
- (void)textViewDidChangeSelection:(UITextView *)textView
{
[textField resignFirstResponder]; // this is event for hide keyboard.
}
viewController からデリゲートをサブスクライブし、それらのオブジェクトのデリゲートを viewController に設定してください。
.h
@interface YourViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate>
.m
someTextField.delegate = self;
someTextView.delegate = self;
その音から、textField と textView のアクションに結び付ける必要があるだけです。IBAction を作成し、必要なものに関連付けます。その後、そのIBActionからResignFirstResponderを行うことができます。
このアクションを textField と textView の両方に使用します
- (IBAction)lowerTheText:(id)sender
{
[sender resignFirstResponder];
}