質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

4回答

3885閲覧

webview内で選択したテキストフィールドの認識をしたいのですがうまくできません

minoossp

総合スコア42

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/11/20 22:14

編集2022/01/12 10:55

どのように質問すればいいのかわからないのですが

例えば‥

tf1.inputAccessoryView = myKeyboard tf1.delegate = self

のようにテキストフィールドを特定できる場合このように
書けると思うのですが
これを不特定多数のテキストフィールドの場合
置き換える事は可能かということが知りたいです?

tf1.inputAccessoryView = myKeyboard
tf1.delegate = self

の場合
tf1のテキストフィールド以外で出したキーボードには反映されない状態になると
思うのですが

〇〇.inputAccessoryView = myKeyboard
〇〇.delegate = self

〇〇の部分を
タップしたテキストフィールドとして
コードが書きたいのですが
うまく説明ができないので申し訳ありません

追加
自分の中で一番理想に近いのが
ブラウザーアプリです。

どのタイミングで呼びだされたキーボードでも
キーボードの上にinputAccessoryViewが乗っかっている状態
アプリ間同士やweb間でも同じようにinputAccessoryViewを乗せたいのですが
どこを探しても詳しく載っているところがなく困っています。

回答いただいた方‥
紛らわしい質問になってしまいすいません。

swift3.0 xcode8.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromageblanc

2016/11/21 01:33

テキストフィールドというのは、サイト内のform部品(<input text ...)でしょうか?
fromageblanc

2016/11/21 02:13

サブミットされた時に一応リクエストをフックすることはできますが、いつのタイミングで何をしようとしてますか?
guest

回答4

0

フォーカス時にコールされるメソッド(textFieldDidBeginEditing)を実装すればいいのかな?
どこのフィールドがフォーカスされたかは引数で渡ってくるので気にする必要ないです。
(稼働未確認)

swift

1// swift 3.0 2 3class ViewController: UIViewController,UITextFieldDelegate { 4 5 @IBOutlet var myTextField: [UITextField]! // アウトレットコレクション 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 for i in 0..<myTextField.count { 11 myTextField[i].delegate = self 12 } 13 14 } 15 16 // フォーカス当たった時にコール 17 func textFieldDidBeginEditing(_ textField: UITextField) { 18 19 // textField == タップされたテキストフィールド 20 21 // なんか処理 22 textField.inputAccessoryView = myKeyboard 23 24 } 25 26}

投稿2016/11/21 04:27

編集2016/11/21 04:34
fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minoossp

2016/11/21 16:04

返事遅れて申し訳ありません。 回答ありがとうございます、for文こういう使い方もできるんですね。 とてもわかりやすいコードありがとうございます。 この 『フォーカス当たった時』に呼び出される部分はText Viewなどにも使えるのでしょうか?
fromageblanc

2016/11/21 16:24

TextViewも基本一緒です。UITextViewDelegate、textViewDidBeginEditingがあるはず(たぶん)
minoossp

2016/11/21 16:42

ありました。ありがとうございます。
guest

0

ユーザーの入力するタイミング(キーボード起動時)

だと無理じゃないかなぁ。。サーバサイド(web側)でやりましょう。

投稿2016/11/21 02:39

fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minoossp

2016/11/21 03:04

サブミットされた時に一応リクエストをフックすることはできますが、いつのタイミングで何をしようとしてますか? 質問方法が悪くすいません。 どんな時でもキーボードに貼り付けたViewをキーボードが出た時に同時に表示したいのです。 何か入力する時にテキストフィールドやUITextViewなどのキーボードを出した時に 全て同じようにしたいです。
fromageblanc

2016/11/21 04:28

実はwebview関係ないですよね?一応回答しました
minoossp

2016/11/21 16:08

申し訳ありません 宣言していないテキストフィールドで思いつくものが webview内のテキスト入力時だったもので誤解を招いてしまい申し訳ありません。
guest

0

フォーム選択時にクリアしたいだけなら、html側(JavaScript?)でやった方が早いんじゃないでしょうか?

投稿2016/11/21 02:24

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

試してませんが、こんなのでできそうな気がします。

html = "<form action='native://hogehoge'><input name='test' type='text' /><input type='submit' value='送信' /></form>"
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { if let url = request.URL?.absoluteString { if url.hasPrefix("native://") { print(url) // ここのurlのtestパラメータに値が渡ってくるはず return false } } return true }

投稿2016/11/21 02:05

編集2016/11/21 02:15
kaji

総合スコア648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問