- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是学习 RxSwift 的新手。
我修改了 RxSwift Example App 中的 Simple Numbers 示例,它将三个数字添加到一个结果数字中。
我添加了一个 testStr
UITextField
和一个 upperCase
UILabel
。我将 testStr
映射到大写并将 bindTo
映射到 upperCase
标签,这很好。我还将 testStr
映射到它的 length
,并将 bindTo
映射到 num1
字段。奇怪的事情发生了,虽然num1
字段的内容发生了变化,但它并没有发出任何事件,所以对result
标签没有任何影响。即使我在另一个数字字段中输入了一些数字,result
数字也不计入 num1
。
我是否错误地使用了 bindTo
?我可以用什么方式让 num1
发出事件?
谢谢!!!
@IBOutlet weak var num1: UITextField!
@IBOutlet weak var num2: UITextField!
@IBOutlet weak var num3: UITextField!
@IBOutlet weak var result: UILabel!
@IBOutlet weak var testStr: UITextField!
@IBOutlet weak var upperCase: UILabel!
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Observable.combineLatest(num1.rx_text, num2.rx_text, num3.rx_text) {
(textval1, textval2, textval3) -> Int in
return (Int(textval1) ?? 0) + (Int(textval2) ?? 0) + (Int(textval3) ?? 0)
}
.map{$0.description}
.bindTo(result.rx_text)
.addDisposableTo(disposeBag)
let obStr = testStr.rx_text
obStr
.map {$0.uppercaseString}
.bindTo(upperCase.rx_text)
.addDisposableTo(disposeBag)
obStr
.map{ $0.characters.count }
.map{ $0.description }
.bindTo(num1.rx_text)
.addDisposableTo(disposeBag)
}
最佳答案
您需要使用 Subject
,例如 Variable
来存储值。您可以在 this answer in the section called Using Variables
中看到这样的示例.
它不起作用的原因是因为 rx_text
只会在用户更改时省略下一个元素,不会以编程方式(如您所做的那样)。这是因为 rx_text
实际上是使用 UIControl
中的这个方法来获取字段更改的通知:
public class UIControl : UIView {
public func addTarget(target: AnyObject?, action: Selector, forControlEvents controlEvents: UIControlEvents)
}
但是,当更改以编程方式发生时,该方法不会调用 target
上的 action
方法。 仅由于用户更改某些内容而发生时。
因此,如果您要以编程方式更改该字段,然后用户要进入(或离开)该字段,您应该会看到下一个事件。然而,这不是您想要的。
相反,请引用我链接到的那个答案,它会起作用。
关于ios - UITextField 的 bindTo rx_text 没有触发 UITextField 的发射事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38650044/
我正在尝试使用 DynamicMethod 并尝试使用 IL 来创建一些对象。我想创建以下非常基本的对象: new Queue(new List{100}); 我已经使用 ILDASM 查看生成此代码
这是我stackoverflow的第一个问题!我有一个显示 mpl 图 Canvas 的 PyQT gui。我已将主轴周围的边距设置为 0,因此绘图将完全填满图形 Canvas 和包含它的小部件。问题
我的环境是 Windows 7,安装了 scala 2.11.4(运行良好),Java 1.8 我已经尝试过 spark-1.2.0-bin-hadoop2.4 和 spark-1.2.1-bin-h
对于我的生活,我无法弄清楚为什么我不能发送或捕获一些数据。 toggleNavigation() 触发,但我不确定 .emit() 是否真的在工作。 最终我想折叠和展开导航,但现在我只想了解如何将数据
我试图在 VUE 3 中传递一个 emit prop,每次传递它时我仍然得到 false,并且 prop 无法切换。 Accordion .vue
我有一个 View 模型,它采用初始 ViewState对象并具有可公开访问的 state可以收集的变量。 class MyViewModel(initialState: ViewState) : V
现在在玩 RxJava,偶然发现了以下问题: 我有 2 个不同的流: 带有项目的流 Stream(只有 1 个项目),它发出第一个流的转换信息。 所以基本上我有项目流,我希望所有这些项目与第二个流中的
我有一个 API 登录服务,它使用 http 服务来执行登录逻辑(LoginApiService、login-api.service.ts): login(data: LoginCredentials
我们有微服务架构,我们通过网络进行服务间调用。我们在顶层服务中使用 RxJava,这会导致向底层服务创建大量并行请求。因此,我收到“没有到主机的路由错误”或“连接错误”。为此,我想减慢 RxJava
Vue.component('rating-edit', { template:` {{rating.remark}} Sav
我最近购买了 Dream Cheeky Thunder 导弹发射器,我希望通过我的树莓派来控制它。 使用来自报复的代码(https://raw.githubusercontent.com/codeda
我制作了这段代码来记录发送到我的机器人的 DM: client.on('messageCreate', async message => { if (message.author.bot) r
我需要从服务器代码、路由器/ Controller 上的任何位置发出来自服务器的套接字。我检查了一些线程和谷歌,但没有按预期工作。 app.js var app = require('express'
我是一名优秀的程序员,十分优秀!