如何从用户启动的和以编程方式对UITextField文本属性进行更改的信号?通过使用continuousTextValues,仅在用户启动更改时报告信号.如果以编程方式设置textField.text,则不会触发信号.

这就是我使用continuousTextValues的方式:

textField.reactive.continuousTextValues.observeValues { value in
    print("Value: \(value)")
}

如果我手动设置文本,它不会被触发:

textField.text = "Test"
信号continuousTextValues将仅在用户使用键盘输入时触发.您可以尝试:
var characters = MutableProperty("")

tf.reactive.text <~ characters
tf.reactive.continuousTextValues.observeValues { [weak characters = characters] (text) in
   characters?.value = text!
}
tf.reactive.textValues.observeValues { [weak characters = characters] (text) in
   characters?.value = text!
}

characters.producer.skip(while: { $0.isEmpty }).startWithValues { (text) in
   log.debug("text = \(text)")
}

characters.value = "shaw"

swift – 每次在ReactiveCocoa 5中UITextField文本属性发生更改时,如何获取信号的更多相关文章

  1. ios – 使用ReactiveCocoa时未调用错误块

    出于某种原因,我没有收到错误消息.这打印“B”.知道为什么吗?如果在订阅者上调用-sendError:,为什么完成块会收到它?

  2. ios – UITextField中的Autolayout:执行-layoutSubviews后仍需要自动布局

    我究竟做错了什么?

  3. ios – RACObserve不工作

    我正在尝试观察我的viewmodel中的属性,然后使用ReactiveCocoa更新带有它的值的标签,但它没有更新.这是我得到的:视图模型视图控制器我检查过,viewmodel正在更新’amount’属性.这里有什么我想念的吗?我也试过这个测试:也不起作用.我正在使用ReactiveCocoa2.4.7,因为我的应用程序支持iOS7.Swift[1,2]和此版本中的宏替换之间是否存在任何不兼容性?

  4. ios – 如何使UITextField可选但不可编辑?

    我希望用户可以复制和粘贴文本,但不能编辑它们.我使用委托UITextField方法来实现这个:这样虽然文本是可选择的而且不可编辑,但是当你选择文本时,键盘总是显示出来,这有点烦人,因为你无法编辑文本.那么无论如何在不显示键盘的情况下使文本可选而不可编辑?,您可能需要添加:

  5. ios – 设置TouchID“输入密码”后备以开始编辑UITextField

    我在我的应用程序中设置了touchID并正常工作.但是,我想更改“输入密码”的功能.创建我的身份验证时,我遵循以下教程:http://www.appcoda.com/touch-id-api-ios8/但是,他们使用alertView作为“输入密码”选项.我想解雇touchIDalertview并让我的passwordTextField成为第一个响应者.当然我试过了:但这会导致错误:这是我的身份验

  6. ios – UITextField文本在左侧不滚动

    我有一个UITextField子类,我已经覆盖了一些方法.问题是,当我输入它并且文本达到严格边距时,它将不再显示我正在键入的内容.在视图调试模式中,我看到UIFieldEditor比文本提交的要宽得多.这是UITextFiled子类代码:这是我使用这个类的代码:当用户在此文本字段中键入大字符串时,如何让文本在左侧滚动?

  7. ios – UITextField secureEntry错位了游标

    我在UITextField上切换secureEntry属性时遇到问题.切换属性时,将调整字符大小,但光标位于错误的位置:解决方法这是我的解决方法:禁用然后启用UITextField也有帮助,但它会突然将我的软键盘从一个更改为另一个

  8. ios – Swift,移动键盘后面的内容在关闭后不会重置

    我在我的一个VC中有一个uiscrollview.在scrollView中,我有多个TF,按钮等.我使用下面的代码,根据Apple文档,在调用键盘通知时向上移动scrollView,以推高隐藏的文本字段.但是,当我关闭键盘时,scrollView不会重置或向下移动,它只是停留在“向上移动”的位置.我在这里错过了什么吗?我有一个名为的类的成员变量:我是否正确使用了委托方法?解决方法我这样做了,它对我有用.似乎比你的方式容易多了.我为我的项目使用了UITextView.但它应该与UITextField一样.–

  9. ios – 更改的值与编辑UITextField的更改事件之间的区别是什么

    我目前正在阅读一本关于swift中的设计模式的书,并且有一个程序,当步进器的值发生变化或与其关联的文本字段发生变化时,方法会得到通知,这里是方法但是当我改变这段代码时我遇到了一些问题,首先当我刚刚剥离出来的时候,它只是没有用.而且,当我将文本字段的事件从编辑更改为更改为值时,它只是不起作用!

  10. 如何在警报视图IOS中创建两个文本字段

    =========工作解决方案===========感谢下面的答案,当你只需要两个纯文本字段时解决方法分配“消息”警报视图后.将其添加到您的代码中:这将使您的警报视图内部有两个文本字段.

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部