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

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

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

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

Swift

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

Q&A

解決済

1回答

1158閲覧

returnキーで生成したはずのtextfieldが画面に追加されない

chrisuts1

総合スコア7

Xcode

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

Swift

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

0グッド

0クリップ

投稿2017/06/04 01:01

###前提・実現したいこと
textFieldShouldReturnを使って、textfieldを新たに生成するコードを作りたいのですが、新しいtextfieldが画面(正確には、ポップアップ遷移先のビューAddTaskView)に追加されません。
操作は全て、ポップアップで画面遷移した遷移先のAddTaskViewControllerで行われています。また、TF1やaddAllTask、新しく追加したいtextfieldは全てAddTaskView上のものです。

###発生している問題・エラーメッセージ

新しいtextfieldが画面に追加されません。 今までのtextfieldを含む配列AllTFの要素の数をタイトルとするボタンであるAddAllTask(つまり、textfieldの総数をあらわすボタン)には、新しく生成したtextfieldの分が反映されているので、生成はされているはずなのですが、、、、

###該当のソースコード

swift

1import UIKit 2 3class AddTaskViewController: UIViewController, UITextFieldDelegate{ 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 // Do any additional setup after loading the view. 9 TF1.delegate = self 10 addAllTask.setTitle("タスクを1項目追加", for: .normal) 11 AllTF.append(TF1) 12 } 13 14 override func didReceiveMemoryWarning() { 15 super.didReceiveMemoryWarning() 16 // Dispose of any resources that can be recreated. 17 } 18 19 @IBOutlet weak var AddTaskView: UIView! 20 21 @IBOutlet weak var addAllTask: UIButton! 22 23 @IBOutlet weak var TF1: UITextField! 24 25 var AllTF: [UITextField] = [] 26 27 28 var nextTF: UITextField! 29 30 func textFieldShouldReturn(_ textField: UITextField) -> Bool 31 { 32 let numberOfTF = AllTF.count 33 34 textField.resignFirstResponder() 35 createNewTF(parameter: numberOfTF) 36 return true 37 } 38 39 func createNewTF(parameter: Int) 40 { 41 let width = Int(TF1.frame.width) 42 let height = Int(TF1.frame.height) 43 let X = Int(TF1.frame.origin.x) 44 let Y = Int(TF1.frame.origin.y) + (height + 10) * parameter 45 46 nextTF = UITextField(frame: CGRect(x: X, y: Y, width: width, height: height)) 47 self.AddTaskView.addSubview(nextTF) 48 AllTF.append(nextTF) 49 nextTF.delegate = self 50 51 addAllTask.setTitle("タスクを\(AllTF.count)項目追加", for: .normal) 52 } 53}

###試したこと
最初は、最後の部分でself.view.addSubview(nextTF)となっていたのですが、self.AddTaskView.addSubview(nextTF)に直したり、あとはnextTFの座標を色々いじったりしました。

###補足情報(言語/FW/ツール等のバージョンなど)
swift3, xcode8

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

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

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

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

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

guest

回答1

0

自己解決

textFieldが枠なしのものだったので見えていないだけでした。

swift

1nextTF.borderStyle = TF1.borderStyle

の一行を付け足せばすみました。

投稿2017/06/05 12:59

chrisuts1

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問