MFMailComposeViewController
が付いているキーボードは、一度キーボードが表示されたら、それを解消する手段がありません。 誰でもキーボードを変更する考えはありますか?その時点でメールクライアントに実際にいるので、UITextField
は公開されていません。MFMailComposeViewController iphoneキーボードに完了またはキャンセルがありません
答えて
MFMailComposeViewControllerには、そのボタンをリターンキーとして使用して新しい行を作成することを前提としているため、「完了」ボタンはありません。
あなたが本当に「完了」ボタンにボタンを変更したい場合は、私はそれを行うに考えることができる唯一の方法があります:
- は新しいMFMailComposeViewControllerを作成します。
- [[mailComposerビュー]サブビュー]を通じて列挙します。
- 各サブビュー(および必要に応じてサブビューのサブビュー)を検査します。あなたが体であるUITextViewを見つけた
- は、次の操作を行います。-textViewShouldEndEditing上
戻りYES。 ALL UITextViewDelegateメソッドを実装し、originalTextViewDelegate(サブクラスで "super"を呼び出すようなもの)を呼び出します。
- (BOOL)textViewShouldEndEditing:(UITextView *)textView { [originalTextViewDelegate textViewShouldEndEditing:textView]; // Important: return YES, regardless of originalTextViewDelegate's response return YES; } - (void)textViewDidChangeSelection:(UITextView *)textView { [originalTextViewDelegate textViewDidChangeSelection:textView]; } - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { return [originalTextViewDelegate textView:textView shouldChangeTextInRange:range replacementText:text]; } // etc
動作するはず
// Get the UITextView from subview inspection
UITextView *textView;
// Declare this instance variable in your class @interface
id <UITextViewDelegate> originalTextViewDelegate;
// Get the original delegate
originalTextViewDelegate = [textView delegate];
// Override the delegate
[textView setDelegate:self];
// Set the return key type
[textView setReturnKeyType:UIReturnKeyDone];
、ない保証。希望が助けてくれる! :D
メッセージ本文はUITextContentViewです。これはプライベートクラスです。ただし、キーボードコントロールを許可するUITextInputTraitsプロトコルに準拠しています。 – Isabel
ありがとうございます。私は、MFMailComposeViewControllerのすべてのコードを見て、ouldはUITextコントロールへの参照を見つけられません。 カーソルは、任意のフィールドにカーソルを置いたときに電子メールを非表示にすることはできません。 iPhoneでは、画面が上にスクロールせずにメールの残りの部分が表示されます。 VCの監督のようだ。 おそらくナビゲータにボタンを配置しますか? – cavuco
メールコンポーザーが、それはあなたが明示的にドキュメントに変更しないように言われ、システム提供のビューコントローラである、あなたが変更することはない。重要
:メール作成インターフェースそのものではありませんカスタマイズ可能で、アプリケーションで変更してはいけません。また、インターフェースを提示した後で、アプリケーションは電子メールの内容をさらに変更することはできません。ユーザーは引き続きインターフェイスを使用してコンテンツを編集できますが、プログラムによる変更は無視されます。したがって、インターフェイスを表示する前に、コンテンツフィールドの値を設定する必要があります。
キャンセルボタンは既に左上にありますが、「完了」とは何ですか?メールを送信しますか?それは右上にあります。
- 1. MFMailComposeViewControllerが終了しません(iOS10)
- 2. キーボードは完了し、ボタンをキャンセルできますか?
- 3. MFMailComposeViewControllerは終了しません
- 4. dojo.tooltipdialogキャンセル(X)ボタンがありません
- 5. AndroidアプリケーションでasyncTaskが完了した後に出力がありません
- 6. NSURLSessionDataTask完了ハンドラは、それが起動されることは決してありませんので、タスクが完了することはありません
- 7. タイプエラー:完了は機能ではありません(ノーデマイラー)
- 8. AVPlayerViewControllerで「完了」ボタンがありません。目的C
- 9. 申し訳ありません - あなたの最後の行動は完了できませんでした
- 10. コアデータにレコードがありませんiphone
- 11. MFMailComposeViewControllerはキャンセルボタンで閉じることはありません
- 12. iPhone willResignActiveメソッドは実行を完了しません
- 13. iPhoneのランドスケープにあるMFMailComposeViewController
- 14. IPhone UIActivityIndicatorは、処理が完了するまで表示されません。
- 15. AdMobインタースティシャル広告が「準備完了」になることはありません
- 16. '完了した'モジュールが見つかりません
- 17. company-clang always完了が見つかりませんでした
- 18. AAD B2C - 操作を完了するための特権がありません
- 19. View.setLayoutParams()はレイアウトが完了しても効果がありません
- 20. mergeMapがあまりにも早く完了しました
- 21. 完了ブロックをキャンセルします。
- 22. iPhoneで「完了」を押したときにキーボードが消えない
- 23. コンパイラは完了ハンドラ内のガードステートメントが好きではありません
- 24. アップグレードが完了しましたIOS 4.3 iPhone用iphoneアプリ
- 25. CentOS 6.2のSelenium Serverにはキーボード入力がありません
- 26. MFMailComposeViewControllerをナビゲーションスタックにプッシュしますか?モーダルではありません
- 27. ChromeとFirefoxではリモートフォームが正しく完了しましたが、IEはありません
- 28. VS 2008操作を完了できませんでした。この操作を完了するのに十分なストレージがありません
- 29. iPhone Facebook SDKのFacebookクラスにキャンセル方法がありますか?
- 30. CCRotateByが完了していません
あなたはこれをするのがなぜ気になるのですか。共通の要件ではないため、簡単ではありません。 –