11
私はwave_mode_slider
と呼ばれる私のmacosアプリケーションにNSSlider
があります。私がしようとしているのは、入力時にスライダーの値を更新することです。だから、私がやったことはこれです:意図したとおりにnsslider.integerValueは値を更新する前に別のアプリにフォーカスする必要があります
self.wave_mode_slider?.integerValue = ("\(params[2])" as NSString).integerValue
これは、入力の値にスライダー(白ドット)の値を設定します。ただし、実際の結果が表示される前に、アプリケーションの外側をクリックする必要があります。スライダの白い点が新しい値にジャンプします。ここに示すように:
すぐにスライダーを更新する方法はありますか?
私のスライダーを次のように作成されます。
self.wave_mode_slider = NSSlider(frame:CGRect(x: 10, y: 100, width: 20, height: 300))
self.wave_mode_slider?.cell = OWOWSliderVertical()
self.wave_mode_slider?.maxValue = 127
self.wave_mode_slider?.target = self
self.view?.addSubview(self.wave_mode_slider!)
私がtrueにスライダーのisContinuous
プロパティを設定しようとしましたが、それは結果を変更doen't。
編集:
var midiClient : MIDIClientRef = 0
var inPort : MIDIPortRef = 0
let observer = UnsafeMutableRawPointer(Unmanaged.passUnretained(self).toOpaque())
MIDIClientCreate("WobClient" as CFString, nil, nil, &midiClient)
MIDIInputPortCreate(midiClient, "WobClient_InPort" as CFString, {
(pktList: UnsafePointer<MIDIPacketList>, readProcRefCon: UnsafeMutableRawPointer?, srcConnRefCon: UnsafeMutableRawPointer?) -> Void in
let packetList : MIDIPacketList = pktList.pointee
var packet : MIDIPacket = packetList.packet
let mySelf = Unmanaged<Wob>.fromOpaque(srcConnRefCon!).takeUnretainedValue()
for _ in 1...packetList.numPackets {
let bytes = Mirror(reflecting: packet.data).children
var params : [UInt64] = []
var i = packet.length
for (_, attr) in bytes.enumerated() {
let string = String(format: "%02X ", attr.value as! UInt8)
params.append(UInt64(strtoul(string, nil, 16)))
i -= 1
if (i <= 0) {
break
}
}
// print(("\(params[2])" as NSString).integerValue)
mySelf.setWaveSliderValue(value: ("\(params[2])" as NSString).integerValue)
packet = MIDIPacketNext(&packet).pointee
}
}, nil, &inPort)
MIDIPortConnectSource(inPort, self.source, observer)
これは、あちこちに私はそれは私がちょうど、とすぐに私はスレッドに関するWillekeさんのコメントを見たように、かなり簡単だった最終的には価値
セルを交換しないと機能しますか? – Willeke
@Willeke nope、私は同じ出力を得ます –
私はあなたのコードを試して、それは動作します。おそらく問題はあなたのコードのどこかにあるでしょう。どこから値を設定しますか? – Willeke