2017-02-28 6 views
1

基本的には、i have an alert controller set up so that when i click a button in the view controller, an alert controller pops up and i can type words into a textfield, click an "OK" buttonと、そのテキストをビューコントローラのラベルに挿入します。 Iveはこの能力を拡張しました。preset keywords (like "Good," "Likely" and "Almost") that i can select from in the alert controller to speed up the typing process, as these words are typed a lot in my app.私が選択したキーワードを編集できるかどうか疑問に思っていましたか?ラベルにあるテキストにテキストを追加しようとするたびに、空白のテキストフィールドから開始する必要があります。ラベル - >アラートコントローラのテキストフィールド?アラートコントローラのテキストフィールドで、既存のテキストをラベルから編集できますか? Swift 3、Xcode 8、IOS

具体的には、私のラベルに既に入っているテキストは、次にテキスト・フィールドに編集する準備ができていますか?次に警告コントローラをプルアップしますか?

これは私が第二の画像のために、これまで持っているものです。

//Editable Text Box with Preset Keywords 

@IBOutlet weak var UselessLabel: UILabel! 

@IBAction func UselessTapped(_ sender: UIButton) { 
    print("Useless Button Tapped") 
    openUselessAlert() 

} 

func openUselessAlert() { 

    //Create Alert Controller 
    let alert9 = UIAlertController (title: "Uselss:", message: nil, preferredStyle: UIAlertControllerStyle.alert) 

    //preset keyword as button in alert controller 
    let bt1 = UIAlertAction(title: "Good", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Good"} 

    alert9.addAction(bt1) 

    //preset keyword as button in alert controller 
    let bt2 = UIAlertAction(title: "Likely", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Likely"} 

    alert9.addAction(bt2) 

    //preset keyword as button in alert controller 
    let bt3 = UIAlertAction(title: "Almost", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Almost"} 

    alert9.addAction(bt3) 

    //Create Cancel Action 
    let cancel9 = UIAlertAction(title: "CANCEL", style: UIAlertActionStyle.cancel, handler: nil) 

    alert9.addAction(cancel9) 


    //Create OK Action 
    let ok9 = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (action: UIAlertAction) in print("OK") 
     let textfield = alert9.textFields?[0] 
     print(textfield?.text!) 
     self.UselessLabel.text = textfield?.text! 
    } 

    alert9.addAction(ok9) 

    //Add Text Field 
    alert9.addTextField { (textfield: UITextField) in 
     textfield.placeholder = "Useless" 
    } 

    //Present Alert Controller 
    self.present(alert9, animated:true, completion: nil) 
} 

助けてください!私は本当にXcodeとプログラミング一般に新しいので、私はそれになると巨大なばかだ。

感謝:)

+1

で悪気をプレースホルダを置き換えませんが、これを達成するために、あなたのコードの死者シンプルを注意深く見ている場合。プレースホルダを設定するのではなく、 'textfield.text'プロパティを目的の値に設定するだけです。そのような単純な。 – Losiowaty

+0

私は "textfield.text = self.UselessLabel.text"を試してみましたが、うまくいきましたが、仕事の半分しか行いません。ラベルの既存の単語を編集することはできますが、ラベルに含まれるものにはどのようにプリセットキーワードを追加しますか?この問題は、プリセットキーワードをクリックすると発生します。そのキーワードはラベルに表示され、以前にあったものは消去されます。 – DanielG

+0

ああ、実際はちょっと面倒です:)あらかじめ定義された定数を設定するのではなく、テキストを追加するようにアクションハンドラを変更する必要があります。あなたがグーグル "スウィフトは、ラベルに追加する"有用な何かを見つけるためにバインドされている場合;) – Losiowaty

答えて

0

はテキストだけ

//Editable Text Box with Preset Keywords 

@IBOutlet weak var UselessLabel: UILabel! 

@IBAction func UselessTapped(_ sender: UIButton) { 
    print("Useless Button Tapped") 
    openUselessAlert() 

} 

func openUselessAlert() { 

    //Create Alert Controller 
    let alert9 = UIAlertController (title: "Uselss:", message: nil, preferredStyle: UIAlertControllerStyle.alert) 

    //preset keyword as button in alert controller 
    let bt1 = UIAlertAction(title: "Good", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Good"} 

    alert9.addAction(bt1) 

    //preset keyword as button in alert controller 
    let bt2 = UIAlertAction(title: "Likely", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Likely"} 

    alert9.addAction(bt2) 

    //preset keyword as button in alert controller 
    let bt3 = UIAlertAction(title: "Almost", style: UIAlertActionStyle.default){ 
     (action) in self.UselessLabel.text = "Almost"} 

    alert9.addAction(bt3) 

    //Create Cancel Action 
    let cancel9 = UIAlertAction(title: "CANCEL", style: UIAlertActionStyle.cancel, handler: nil) 

    alert9.addAction(cancel9) 


    //Create OK Action 
    let ok9 = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (action: UIAlertAction) in print("OK") 
     let textfield = alert9.textFields?[0] 
     print(textfield?.text!) 
     self.UselessLabel.text = textfield?.text! 
    } 

    alert9.addAction(ok9) 

    //Add Text Field 
    alert9.addTextField { (textfield: UITextField) in 
     textfield.text = "Useless" 
    } 

    //Present Alert Controller 
    self.present(alert9, animated:true, completion: nil) 
} 
+0

OPは、テキストフィールドに挿入されたラベルからのテキストを持っていたかった。 – Losiowaty

関連する問題