अद्यतन करने से पहले किसी अन्य ऐप पर फ़ोकस करने की आवश्यकता है मेरे पास wave_mode_slider
नामक मेरे मैकोज़ ऐप में NSSlider
है। मैं जो करने की कोशिश कर रहा हूं वह इनपुट पर कहा गया स्लाइडर का मान अपडेट कर रहा है। तो, क्या मैंने किया था यह है:nsslider.integer वैल्यू मुझे मूल्य
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!)
मैं सच करने के लिए स्लाइडर का 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