mrchandoo / cordova-plugin-decimal-keyboard

Cordova plugin to show decimal keyboard on iPhones
Apache License 2.0
37 stars 71 forks source link

Can't find keyplane that supports type 4 for keyboard iPhone-PortraitChoco-NumberPad #27

Open onpaws opened 5 years ago

onpaws commented 5 years ago

TLDR Using iOS 12.2, I'm hitting what appears to be an API change that breaks this plugin.

Backstory My app requires a decimal numpad so I tried this plugin. Unlike many of the forks GitHub issues are turned on so thought I'd try posting here. When I tap e.g. <input type="text" pattern="[0-9]*" decimal="true"> I am seeing the telephone numpad, better than the regular qwerty, but my app requires decimal support so this isn't going to work. Was hoping to either see a decimal or, possibly, the Apple decimal pad.

It looks like the API for keyboards changed at some point. Posting the full log in the next message.

iOS 12.2 both Simulator and iPhone X cordova 9.0.0 ios@5.0.0 (latest iOS support) cordova requirements

Requirements check results for ios: Apple macOS: installed darwin Xcode: installed 10.2 ios-deploy: installed 1.9.4 CocoaPods: installed 1.6.1

onpaws commented 5 years ago
2019-03-28 21:30:48.507875+0100 MyApp[26134:1663685] Can't find keyplane that supports type 4 for keyboard iPhone-PortraitChoco-NumberPad; using 20603_PortraitChoco_iPhone-Simple-Pad_Default
2019-03-28 21:30:48.539239+0100 MyApp[26134:1663685] API error: <_UIKBCompatInputView: 0x7ffe3dd2fd70; frame = (0 0; 0 0); layer = <CALayer: 0x600001fde880>> returned 0 width, assuming UIViewNoIntrinsicMetric
2019-03-28 21:30:48.539418+0100 MyApp[26134:1663685] API error: <_UIKBCompatInputView: 0x7ffe3dd2fd70; frame = (0 0; 0 0); layer = <CALayer: 0x600001fde880>> returned 0 width, assuming UIViewNoIntrinsicMetric
2019-03-28 21:30:48.579203+0100 MyApp[26134:1663685] [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
    (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003cf1e00 h=-&- v=-&- _UIToolbarContentView:0x7ffe3dd2b580.width == UIToolbar:0x7ffe3dd2af10.width   (active)>",
    "<NSLayoutConstraint:0x600003ce8a00 H:|-(0)-[_UIButtonBarStackView:0x7ffe3dd2e880]   (active, names: '|':_UIToolbarContentView:0x7ffe3dd2b580 )>",
    "<NSLayoutConstraint:0x600003ce8af0 _UIButtonBarStackView:0x7ffe3dd2e880.trailing == _UIToolbarContentView:0x7ffe3dd2b580.trailing   (active)>",
    "<NSLayoutConstraint:0x600003ce7c50 H:|-(16)-[_UIModernBarButton:0x7ffe3dc27160]   (active, names: '|':_UIButtonBarButton:0x7ffe3dc269d0 )>",
    "<NSLayoutConstraint:0x600003ce7ca0 H:[_UIModernBarButton:0x7ffe3dc27160]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc269d0 )>",
    "<NSLayoutConstraint:0x600003cb1400 H:|-(>=5)-[_UIModernBarButton:0x7ffe3dc29aa0]   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29430 )>",
    "<NSLayoutConstraint:0x600003ce00a0 H:[_UIModernBarButton:0x7ffe3dc29aa0]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29430 )>",
    "<NSLayoutConstraint:0x600003cf0870 H:|-(8)-[_UIModernBarButton:0x7ffe3dc2ac70'Done']   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf08c0 H:[_UIModernBarButton:0x7ffe3dc2ac70'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf0c80 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7ffe3dc269d0.leading   (active)>",
    "<NSLayoutConstraint:0x600003cf11d0 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7ffe3dc29fc0.trailing   (active)>",
    "<NSLayoutConstraint:0x600003cf1220 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc269d0]-(0)-[UIView:0x7ffe3dc29250]   (active)>",
    "<NSLayoutConstraint:0x600003cf1270 'UISV-spacing' H:[UIView:0x7ffe3dc29250]-(0)-[_UIButtonBarButton:0x7ffe3dc29430]   (active)>",
    "<NSLayoutConstraint:0x600003cf12c0 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc29430]-(0)-[UIView:0x7ffe3dc29de0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1310 'UISV-spacing' H:[UIView:0x7ffe3dc29de0]-(0)-[_UIButtonBarButton:0x7ffe3dc29fc0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1f90 'UIView-Encapsulated-Layout-Width' UIToolbar:0x7ffe3dd2af10.width == 0   (active)>",
    "<NSLayoutConstraint:0x600003ce9ef0 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>",
    "<NSLayoutConstraint:0x600003ce9fe0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003ce7ca0 H:[_UIModernBarButton:0x7ffe3dc27160]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc269d0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2019-03-28 21:30:48.582523+0100 MyApp[26134:1663685] [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
    (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003cf1e00 h=-&- v=-&- _UIToolbarContentView:0x7ffe3dd2b580.width == UIToolbar:0x7ffe3dd2af10.width   (active)>",
    "<NSLayoutConstraint:0x600003ce8a00 H:|-(0)-[_UIButtonBarStackView:0x7ffe3dd2e880]   (active, names: '|':_UIToolbarContentView:0x7ffe3dd2b580 )>",
    "<NSLayoutConstraint:0x600003ce8af0 _UIButtonBarStackView:0x7ffe3dd2e880.trailing == _UIToolbarContentView:0x7ffe3dd2b580.trailing   (active)>",
    "<NSLayoutConstraint:0x600003cb1400 H:|-(>=5)-[_UIModernBarButton:0x7ffe3dc29aa0]   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29430 )>",
    "<NSLayoutConstraint:0x600003ce00a0 H:[_UIModernBarButton:0x7ffe3dc29aa0]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29430 )>",
    "<NSLayoutConstraint:0x600003cf0870 H:|-(8)-[_UIModernBarButton:0x7ffe3dc2ac70'Done']   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf08c0 H:[_UIModernBarButton:0x7ffe3dc2ac70'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf0c80 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7ffe3dc269d0.leading   (active)>",
    "<NSLayoutConstraint:0x600003cf11d0 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7ffe3dc29fc0.trailing   (active)>",
    "<NSLayoutConstraint:0x600003cf1220 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc269d0]-(0)-[UIView:0x7ffe3dc29250]   (active)>",
    "<NSLayoutConstraint:0x600003cf1270 'UISV-spacing' H:[UIView:0x7ffe3dc29250]-(0)-[_UIButtonBarButton:0x7ffe3dc29430]   (active)>",
    "<NSLayoutConstraint:0x600003cf12c0 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc29430]-(0)-[UIView:0x7ffe3dc29de0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1310 'UISV-spacing' H:[UIView:0x7ffe3dc29de0]-(0)-[_UIButtonBarButton:0x7ffe3dc29fc0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1f90 'UIView-Encapsulated-Layout-Width' UIToolbar:0x7ffe3dd2af10.width == 0   (active)>",
    "<NSLayoutConstraint:0x600003ce9ef0 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>",
    "<NSLayoutConstraint:0x600003ce9fe0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003ce00a0 H:[_UIModernBarButton:0x7ffe3dc29aa0]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29430 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2019-03-28 21:30:48.583848+0100 MyApp[26134:1663685] [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
    (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x600003cf1e00 h=-&- v=-&- _UIToolbarContentView:0x7ffe3dd2b580.width == UIToolbar:0x7ffe3dd2af10.width   (active)>",
    "<NSLayoutConstraint:0x600003ce8a00 H:|-(0)-[_UIButtonBarStackView:0x7ffe3dd2e880]   (active, names: '|':_UIToolbarContentView:0x7ffe3dd2b580 )>",
    "<NSLayoutConstraint:0x600003ce8af0 _UIButtonBarStackView:0x7ffe3dd2e880.trailing == _UIToolbarContentView:0x7ffe3dd2b580.trailing   (active)>",
    "<NSLayoutConstraint:0x600003cf0870 H:|-(8)-[_UIModernBarButton:0x7ffe3dc2ac70'Done']   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf08c0 H:[_UIModernBarButton:0x7ffe3dc2ac70'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>",
    "<NSLayoutConstraint:0x600003cf0c80 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x7ffe3dc269d0.leading   (active)>",
    "<NSLayoutConstraint:0x600003cf11d0 'UISV-canvas-connection' UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x7ffe3dc29fc0.trailing   (active)>",
    "<NSLayoutConstraint:0x600003cf1220 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc269d0]-(0)-[UIView:0x7ffe3dc29250]   (active)>",
    "<NSLayoutConstraint:0x600003cf1270 'UISV-spacing' H:[UIView:0x7ffe3dc29250]-(0)-[_UIButtonBarButton:0x7ffe3dc29430]   (active)>",
    "<NSLayoutConstraint:0x600003cf12c0 'UISV-spacing' H:[_UIButtonBarButton:0x7ffe3dc29430]-(0)-[UIView:0x7ffe3dc29de0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1310 'UISV-spacing' H:[UIView:0x7ffe3dc29de0]-(0)-[_UIButtonBarButton:0x7ffe3dc29fc0]   (active)>",
    "<NSLayoutConstraint:0x600003cf1f90 'UIView-Encapsulated-Layout-Width' UIToolbar:0x7ffe3dd2af10.width == 0   (active)>",
    "<NSLayoutConstraint:0x600003ce9ef0 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>",
    "<NSLayoutConstraint:0x600003ce9fe0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x6000026ae140'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x7ffe3dd2e880 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600003cf08c0 H:[_UIModernBarButton:0x7ffe3dc2ac70'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x7ffe3dc29fc0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.