0
NSViewに配列の内容を渡して、長方形xの位置を表示しようとしています。 私は乱数とボタンを使ってバージョンをセットアップし、コードを最小限に減らしましたので、うまくいけば読みやすくなります。私は配列をグローバル変数として作成しようとしました。私もこの答えからコードを逆にしようとしました。 Pass data between view controllers。私はコメントを挿入しました:"これは達成したいことです"私は達成しようとしていることを説明します。 誰かが助けてくれることを望んでいますか?おかげNSViewに変数を渡す
スウィフト3のXcode 8.1 OSXのMac OSではないのiOSあなたがNSView
のサブクラスへの強い参照を持っているので、単にプロパティを追加
//
// MainWindowController.swift
import Cocoa
class MainWindowController: NSWindowController {
@IBOutlet weak var myView: NSView!
var myArray = [Int]()
override func windowDidLoad() {
super.windowDidLoad()
//just for testing
for i in 0..<6{
myArray.append(i*10)
}
}//EO Overide
//just for testing
@IBAction func myButton(_ sender: AnyObject) {
myFunc()
}
func myFunc(){
for i in 0..<6{
let diceRoll = Int(arc4random_uniform(6) + 1)
myArray[i]=diceRoll * 10
}
myView.needsDisplay = true
}//EO myFunc
}//EnD oF thE wORld
class myGUI: NSView {
override func draw(_ dirtyRect: NSRect) {
for i in..<6{
let fromArray = myArray[i]
let box1 = NSMakeRect(CGFloat(fromArray),0,4,60)//This is what i want to do
let box1Color = NSColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 1.0)
let box1Path: NSBezierPath = NSBezierPath(rect: box1)
box1Color.set()
box1Path.fill()
}//EO For
}}
クラス名と醜いループについて私は注意します。私はループスタイルが存在することを知らなかった(自己教えられた)私はエラーを受け取りました。 "タイプ 'NSView'の値にメンバ 'array'がありません"ありがとう – oldman
Interface Builderでは、カスタムビューのクラスを 'myGUI'に設定する必要があります – vadian
myGUIビューのクラスをまだ運行していません – oldman