###実現したいこと
テキストフィールドに文字列を入力し、ボタンを押すとYoutubeで検索が行われる、という機能を勉強しています。
youtubeはSFSafariViewControllerで表示しています。
ボタンを押してSFSafariViewControllerが起動する、という動作をエンターキーでも実装したいのですが、どのように行うか、というところで詰まってしまいました。
###試したこと
storyboradにボタンとテキストフィールドを配置
import UIKit import SafariServices class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var launchButton: UIButton! @IBOutlet weak var mySearch: UITextField! var mySearchString = "" override func viewDidLoad() { super.viewDidLoad() self.mySearch.delegate = self launchButton?.addTarget(self, action: #selector(self.onClickLaunchButton(_:)), for: UIControlEvents.touchUpInside) self.view.addSubview((launchButton)!); } @objc internal func onClickLaunchButton(_ sender: AnyObject) { mySearchString = mySearch.text! let myURL = "https://www.youtube.com/results?search_query=(mySearchString)" let encURL = URL(string:myURL.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!) let safariVC = SFSafariViewController(url: encURL!) present(safariVC, animated: true, completion: nil) } //textFieldでreturnキーを押したときのイベント func textFieldShouldReturn(_ mySearch: UITextField) -> Bool { mySearch.resignFirstResponder() return true } }
このとき、シミュレーターの挙動は以下のようになります。
buttonをタップすると・・・
考えたこと
//textFieldでreturnキーを押したときのイベント func textFieldShouldReturn(_ mySearch: UITextField) -> Bool { mySearch.resignFirstResponder() return true }
textfieldで文字列入力終了後にエンターキーを押したときのメソッドを追記するのかなあ、、、と思いましたが、その先がわかりませんでした・・
お詳しい方がいらっしゃいましたらご教示いただけますと幸いです。
何卒よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/17 02:00
2018/06/17 02:06