OSDN Git Service

setNeedsDisplayをメインスレッドで呼ぶように修正
authormasakih <masakih@users.sourceforge.jp>
Mon, 20 Nov 2017 14:42:01 +0000 (23:42 +0900)
committermasakih <masakih@users.sourceforge.jp>
Mon, 20 Nov 2017 14:42:01 +0000 (23:42 +0900)
KCD/NSViewExtension.swift
KCD/SlotItemLevelView.swift

index a301286..011f4d5 100644 (file)
@@ -14,4 +14,9 @@ extension NSView {
         
         (animate ? self.animator() : self).frame = frame
     }
+    
+    func needsDisplayInMainThread() {
+        
+        DispatchQueue.main.async { self.needsDisplay = true }
+    }
 }
index 105f37c..8b9352a 100644 (file)
@@ -45,12 +45,12 @@ final class SlotItemLevelView: NSTextField {
     @objc dynamic var slotItemController = NSObjectController()
     @objc dynamic var slotItemLevel: NSNumber? {
         
-        didSet { needsDisplay = true }
+        didSet { needsDisplayInMainThread() }
     }
     
     @objc dynamic var slotItemAlv: NSNumber? {
         
-        didSet { needsDisplay = true }
+        didSet { needsDisplayInMainThread() }
     }
     
     
@@ -61,7 +61,7 @@ final class SlotItemLevelView: NSTextField {
             guard let itemId = slotItemID as? Int else { return }
             
             slotItemController.content = ServerDataStore.default.slotItem(by: itemId)
-            needsDisplay = true
+            needsDisplayInMainThread()
         }
     }