prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Text within MultilineTextInput remains black in macOS Dark Mode
  ### Describe the bug
  
  When using macOS in dark mode, the text within MultilineTextInput widgets remains black, making it difficult to read.
  
  ### Steps to reproduce
  
  1. Add a MultilineTextInput widget to an app
  2. Ensure macOS dark mode is enabled
  3. View the app in dev mode or run the app 
  4. Type text into the MultilineTextInput widget
  5. See error
  
  
  ### Expected behavior
  
  The color of the text within the MultilineTextInput widget should be white when in dark mode and black in light mode. This works as expected with TextInput widget.
  
  ### Screenshots
  
  <img width="270" alt="Screenshot 2023-02-16 at 1 44 35 PM" src="https://user-images.githubusercontent.com/42925864/219470705-d344d219-f0c1-46ed-8fd9-085fccfef03f.png">
  
  
  ### Environment
  
  - Operating System: macOS 13.1
  - Python version: 11
  - Software versions:
    - Briefcase: 0.3.12
    - Toga: 0.3.0
  
  
  ### Logs
  
  ```
  
  ```
  
  
  ### Additional context
  
  _No response_
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `cocoa/src/toga_cocoa/widgets/multilinetextinput.py`
  Content:
  ```
  1 from travertino.size import at_least
  2 
  3 from toga_cocoa.colors import native_color
  4 from toga_cocoa.libs import (
  5     NSBezelBorder,
  6     NSScrollView,
  7     NSTextView,
  8     NSViewWidthSizable,
  9     objc_method,
  10 )
  11 
  12 from .base import Widget
  13 
  14 
  15 class TogaTextView(NSTextView):
  16     @objc_method
  17     def touchBar(self):
  18         # Disable the touchbar.
  19         return None
  20 
  21 
  22 class MultilineTextInput(Widget):
  23     def create(self):
  24         # Create a multiline view, and put it in a scroll view.
  25         # The scroll view is the native, because it's the outer container.
  26         self.native = NSScrollView.alloc().init()
  27         self.native.hasVerticalScroller = True
  28         self.native.hasHorizontalScroller = False
  29         self.native.autohidesScrollers = False
  30         self.native.borderType = NSBezelBorder
  31 
  32         # Disable all autolayout functionality on the outer widget
  33         self.native.translatesAutoresizingMaskIntoConstraints = False
  34 
  35         # Create the actual text widget
  36         self.text = TogaTextView.alloc().init()
  37         self.text.editable = True
  38         self.text.selectable = True
  39         self.text.verticallyResizable = True
  40         self.text.horizontallyResizable = False
  41 
  42         self.text.autoresizingMask = NSViewWidthSizable
  43 
  44         # Put the text view in the scroll window.
  45         self.native.documentView = self.text
  46 
  47         # Add the layout constraints
  48         self.add_constraints()
  49 
  50     def set_placeholder(self, value):
  51         self.text.placeholderString = self.interface.placeholder
  52 
  53     def set_readonly(self, value):
  54         self.text.editable = not self.interface.readonly
  55 
  56     def get_value(self):
  57         return self.text.string
  58 
  59     def set_value(self, value):
  60         self.text.string = value
  61 
  62     def set_color(self, value):
  63         self.text.textColor = native_color(value)
  64 
  65     def set_font(self, font):
  66         if font:
  67             self.text.font = font._impl.native
  68 
  69     def rehint(self):
  70         self.interface.intrinsic.width = at_least(self.interface.MIN_WIDTH)
  71         self.interface.intrinsic.height = at_least(self.interface.MIN_HEIGHT)
  72 
  73     def set_on_change(self, handler):
  74         self.interface.factory.not_implemented("MultilineTextInput.set_on_change()")
  75 
  76     def scroll_to_bottom(self):
  77         self.text.scrollToEndOfDocument(None)
  78 
  79     def scroll_to_top(self):
  80         self.text.scrollToBeginningOfDocument(None)
  81
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/cocoa/src/toga_cocoa/widgets/multilinetextinput.py b/cocoa/src/toga_cocoa/widgets/multilinetextinput.py
  --- a/cocoa/src/toga_cocoa/widgets/multilinetextinput.py
  +++ b/cocoa/src/toga_cocoa/widgets/multilinetextinput.py
  @@ -38,6 +38,7 @@
           self.text.selectable = True
           self.text.verticallyResizable = True
           self.text.horizontallyResizable = False
  +        self.text.usesAdaptiveColorMappingForDarkAppearance = True
   
           self.text.autoresizingMask = NSViewWidthSizable
  
verification_info: {"golden_diff": "diff --git a/cocoa/src/toga_cocoa/widgets/multilinetextinput.py b/cocoa/src/toga_cocoa/widgets/multilinetextinput.py\n--- a/cocoa/src/toga_cocoa/widgets/multilinetextinput.py\n+++ b/cocoa/src/toga_cocoa/widgets/multilinetextinput.py\n@@ -38,6 +38,7 @@\n         self.text.selectable = True\n         self.text.verticallyResizable = True\n         self.text.horizontallyResizable = False\n+        self.text.usesAdaptiveColorMappingForDarkAppearance = True\n \n         self.text.autoresizingMask = NSViewWidthSizable\n", "issue": "Text within MultilineTextInput remains black in macOS Dark Mode\n### Describe the bug\n\nWhen using macOS in dark mode, the text within MultilineTextInput widgets remains black, making it difficult to read.\n\n### Steps to reproduce\n\n1. Add a MultilineTextInput widget to an app\r\n2. Ensure macOS dark mode is enabled\r\n3. View the app in dev mode or run the app \r\n4. Type text into the MultilineTextInput widget\r\n5. See error\r\n\n\n### Expected behavior\n\nThe color of the text within the MultilineTextInput widget should be white when in dark mode and black in light mode. This works as expected with TextInput widget.\n\n### Screenshots\n\n<img width=\"270\" alt=\"Screenshot 2023-02-16 at 1 44 35 PM\" src=\"https://user-images.githubusercontent.com/42925864/219470705-d344d219-f0c1-46ed-8fd9-085fccfef03f.png\">\r\n\n\n### Environment\n\n- Operating System: macOS 13.1\r\n- Python version: 11\r\n- Software versions:\r\n  - Briefcase: 0.3.12\r\n  - Toga: 0.3.0\r\n\n\n### Logs\n\n```\r\n\r\n```\r\n\n\n### Additional context\n\n_No response_\n", "before_files": [{"content": "from travertino.size import at_least\n\nfrom toga_cocoa.colors import native_color\nfrom toga_cocoa.libs import (\n    NSBezelBorder,\n    NSScrollView,\n    NSTextView,\n    NSViewWidthSizable,\n    objc_method,\n)\n\nfrom .base import Widget\n\n\nclass TogaTextView(NSTextView):\n    @objc_method\n    def touchBar(self):\n        # Disable the touchbar.\n        return None\n\n\nclass MultilineTextInput(Widget):\n    def create(self):\n        # Create a multiline view, and put it in a scroll view.\n        # The scroll view is the native, because it's the outer container.\n        self.native = NSScrollView.alloc().init()\n        self.native.hasVerticalScroller = True\n        self.native.hasHorizontalScroller = False\n        self.native.autohidesScrollers = False\n        self.native.borderType = NSBezelBorder\n\n        # Disable all autolayout functionality on the outer widget\n        self.native.translatesAutoresizingMaskIntoConstraints = False\n\n        # Create the actual text widget\n        self.text = TogaTextView.alloc().init()\n        self.text.editable = True\n        self.text.selectable = True\n        self.text.verticallyResizable = True\n        self.text.horizontallyResizable = False\n\n        self.text.autoresizingMask = NSViewWidthSizable\n\n        # Put the text view in the scroll window.\n        self.native.documentView = self.text\n\n        # Add the layout constraints\n        self.add_constraints()\n\n    def set_placeholder(self, value):\n        self.text.placeholderString = self.interface.placeholder\n\n    def set_readonly(self, value):\n        self.text.editable = not self.interface.readonly\n\n    def get_value(self):\n        return self.text.string\n\n    def set_value(self, value):\n        self.text.string = value\n\n    def set_color(self, value):\n        self.text.textColor = native_color(value)\n\n    def set_font(self, font):\n        if font:\n            self.text.font = font._impl.native\n\n    def rehint(self):\n        self.interface.intrinsic.width = at_least(self.interface.MIN_WIDTH)\n        self.interface.intrinsic.height = at_least(self.interface.MIN_HEIGHT)\n\n    def set_on_change(self, handler):\n        self.interface.factory.not_implemented(\"MultilineTextInput.set_on_change()\")\n\n    def scroll_to_bottom(self):\n        self.text.scrollToEndOfDocument(None)\n\n    def scroll_to_top(self):\n        self.text.scrollToBeginningOfDocument(None)\n", "path": "cocoa/src/toga_cocoa/widgets/multilinetextinput.py"}], "after_files": [{"content": "from travertino.size import at_least\n\nfrom toga_cocoa.colors import native_color\nfrom toga_cocoa.libs import (\n    NSBezelBorder,\n    NSScrollView,\n    NSTextView,\n    NSViewWidthSizable,\n    objc_method,\n)\n\nfrom .base import Widget\n\n\nclass TogaTextView(NSTextView):\n    @objc_method\n    def touchBar(self):\n        # Disable the touchbar.\n        return None\n\n\nclass MultilineTextInput(Widget):\n    def create(self):\n        # Create a multiline view, and put it in a scroll view.\n        # The scroll view is the native, because it's the outer container.\n        self.native = NSScrollView.alloc().init()\n        self.native.hasVerticalScroller = True\n        self.native.hasHorizontalScroller = False\n        self.native.autohidesScrollers = False\n        self.native.borderType = NSBezelBorder\n\n        # Disable all autolayout functionality on the outer widget\n        self.native.translatesAutoresizingMaskIntoConstraints = False\n\n        # Create the actual text widget\n        self.text = TogaTextView.alloc().init()\n        self.text.editable = True\n        self.text.selectable = True\n        self.text.verticallyResizable = True\n        self.text.horizontallyResizable = False\n        self.text.usesAdaptiveColorMappingForDarkAppearance = True\n\n        self.text.autoresizingMask = NSViewWidthSizable\n\n        # Put the text view in the scroll window.\n        self.native.documentView = self.text\n\n        # Add the layout constraints\n        self.add_constraints()\n\n    def set_placeholder(self, value):\n        self.text.placeholderString = self.interface.placeholder\n\n    def set_readonly(self, value):\n        self.text.editable = not self.interface.readonly\n\n    def get_value(self):\n        return self.text.string\n\n    def set_value(self, value):\n        self.text.string = value\n\n    def set_color(self, value):\n        self.text.textColor = native_color(value)\n\n    def set_font(self, font):\n        if font:\n            self.text.font = font._impl.native\n\n    def rehint(self):\n        self.interface.intrinsic.width = at_least(self.interface.MIN_WIDTH)\n        self.interface.intrinsic.height = at_least(self.interface.MIN_HEIGHT)\n\n    def set_on_change(self, handler):\n        self.interface.factory.not_implemented(\"MultilineTextInput.set_on_change()\")\n\n    def scroll_to_bottom(self):\n        self.text.scrollToEndOfDocument(None)\n\n    def scroll_to_top(self):\n        self.text.scrollToBeginningOfDocument(None)\n", "path": "cocoa/src/toga_cocoa/widgets/multilinetextinput.py"}]}