2017-09-18 15 views
1

元に戻す操作をやり直すために、次のコードを使用しました。私はラベルの背景色を変更しています。私の元に戻す/やり直し操作はうまくいきましたが、ラベルのテキストカラーを追加しました。バックグラウンドカラーまたはテキストカラーを個別に変更すると、個別にうまく動作します。それは正しく動作しません。私は何をすべきか?助けてください。!私の問題が解決され、このコードを使用して再実行を元に戻す操作

@IBOutlet var myObject: UILabel! 

// MARK: - View Life Cycle 
override func viewDidLoad() { 
    super.viewDidLoad() 
    myObject.backgroundColor = UIColor.yellow 
} 

func setMyObjectColor(_ color: UIColor) { 
     (undoManager?.prepare(withInvocationTarget: self) as AnyObject).setMyObjectColor(myObject.backgroundColor!) 
     myObject.backgroundColor = color 
} 

func setMyObjectTextColor(_ color: UIColor) { 
     (undoManager?.prepare(withInvocationTarget: self) as AnyObject).setMyObjectTextColor(myObject.textColor!) 
     myObject.textColor = color 
} 

@IBAction func changeColor(_ sender: Any){ 
    setMyObjectColor(UIColor.blue) 
} 

@IBAction func changeTextColor(_ sender: Any){ 
    setMyObjectTextColor(UIColor.white) 
} 

@IBAction func undo(_ sender: Any) { 
    undoManager?.undo() 
} 

@IBAction func redo(_ sender: Any) { 
    undoManager?.redo() 
}} 
+0

テキストを設定するためのコードで質問を更新してください(元に戻す/やり直しの部分について心配する必要はありません)。 – rmaddy

+0

@rmaddyクリックに基づいてテキストを追加するためのボタンを1つ付けました。必要な機能を管理しましたが、一度テキストが追加されました。どのように元に戻すかやり直すことができますか? –

+0

参照しているテキストが表示されない場合は、誰も助けてくれることはありません。元に戻す/やり直すテキストの変更に関するコードを関連コードで更新してください。テキスト関連のコードを表示すると、元に戻す/やり直しの機能を助けることができます。 – rmaddy

答えて

1
@IBOutlet var myObject: UILabel! 

// MARK: - View Life Cycle 
override func viewDidLoad() { 
    super.viewDidLoad() 
    myObject.backgroundColor = UIColor.yellow 
} 

func setMyObjectColor(_ Backcolor: UIColor) { 
     (undoManager?.prepare(withInvocationTarget: self) as AnyObject).setMyObjectColor(myObject.backgroundColor!) 
     myObject.backgroundColor = Backcolor 
} 

func setMyObjectTextColor(_ Textcolor: UIColor) { 
     (undoManager?.prepare(withInvocationTarget: self) as AnyObject).setMyObjectTextColor(myObject.textColor!) 
     myObject.textColor = Textcolor 
} 

func setMyObjectText(_ Text: String) { 
    (undoManager?.prepare(withInvocationTarget: self) as AnyObject).setMyObjectText((myObject.text! as AnyObject) as! String) 
    myObject.text = Text 
} 

@IBAction func changeColor(_ sender: Any){ 
    setMyObjectColor(UIColor.blue) 
} 

@IBAction func changeTextColor(_ sender: Any){ 
    setMyObjectTextColor(UIColor.white) 
} 

@IBAction func changeText(_ sender: Any) { 
    setMyObjectText("Khush") 
} 

@IBAction func undo(_ sender: Any) { 
    undoManager?.undo() 
} 

@IBAction func redo(_ sender: Any) { 
    undoManager?.redo() 
} 

+1

これはあなたの質問とは何が関係していますか?あなたがしたのは、あなたの質問の情報やコードとは関係のない 'setMyObjectText'メソッドと' changeText'メソッドを追加したことだけでした。これがあなたの質問を明確にするよう頼んだ理由です。 – rmaddy

関連する問題