Fixed by creating a custom UI focus logic. Apparently SpriteKit is not well integrated with the focus engine as UIKit is.