【问题标题】:react-native macOS: RCTViewManager callback unrecognized selector sent to instancereact-native macOS:RCTViewManager回调无法识别的选择器发送到实例
【发布时间】:2020-12-27 18:19:39
【问题描述】:

我正在使用 UI 组件搭建桥梁 我需要实现一个回调(类似于onChangeTextonKeyUp,...)

收到错误Unrecognized selector sent to instance Screenshot

输入.swift

@objc(RNInput)
class RNInput: RCTViewManager, NSTextFieldDelegate {
  
  @objc var onEnd:RCTBubblingEventBlock?

  ...

}

输入.m


#import <Foundation/Foundation.h>
#import "React/RCTViewManager.h"

@interface RCT_EXTERN_MODULE(RNInput, RCTViewManager)
RCT_EXPORT_VIEW_PROPERTY(onEnd, RCTBubblingEventBlock)
@end

输入.tsx

const RNInput = requireNativeComponent('RNInput');

export class Input extends React.PureComponent<{}> {

  render() {
    return <RNInput onEnd={(e) => console.log(e)}/>
  }
}

【问题讨论】:

    标签: swift macos react-native


    【解决方案1】:

    我找到了问题,

    实现了附加类:

    class CustomNSTextField: NSTextField {
      @objc var onEnd: RCTDirectEventBlock?
    }
    

    和 Input.swift

    class RNInput: RCTViewManager, NSTextFieldDelegate {
      
      override func view() -> NSView! {    
        return CustomNSTextField(frame: NSMakeRect(200,20,200,20));
      }
      
      override static func requiresMainQueueSetup() -> Bool {
        return true
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2012-07-24
      相关资源
      最近更新 更多