问题标签 [target-action]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

ios - 当事件不是由 UIButton 产生时,是否可以使用委托发送消息?

我想知道如何使用委托MyViewController从一个名为的类发送时钟消息,MotionListener但在将 Apple 的解释target-action转换为可行的命令时遇到了麻烦。

Target-action 是一种设计模式,其中一个对象拥有在事件发生时向另一个对象发送消息所需的信息。存储的信息由两项数据组成:一个动作选择器,它标识要调用的方法,一个目标,它是接收消息的对象。] 1

我可以毫不费力地应用示例(下)中的解释(上),使用委托向每当按下它时调用的目标发送消息myButtonfromButtonInSubview

我假设为了发送不是来自 a 的信号,UIButton,我仍然需要声明协议[a],给它一个属性[c]并包含一个初始化方法[b]

[一个]

[乙]

[C]

并在接口[d]中声明协议并在实现中添加目标方法[e]

[d]

[e]

然后在MyViewController,import MotionListener[f]中,在实现[g]中声明它并定义委托[h]

[F]

[G]

[H]

但是,尽管重新阅读了上面引用的解释并且在几次尝试失败后,我还没有编写一个命令来发送同步信号MotionListenerMyViewController.我知道它将具有示例(上图)addTarget:self.delegateaction:@selector(fromSync:)的效果。在有人建议我之前,我已经将它的时钟频率设为 50 Hz,而同步信号为 1 HzUIButtonNSTimer selector,

例如

所以我的问题是:使用委托我如何在每次count轮流时发送同步消息0?答案可能简单得令人尴尬,但如果你能帮忙,我可以穿上它。谢谢。

0 投票
1 回答
45 浏览

swift3 - 将参数传递给函数

//这是以编程方式包含我的按钮操作的函数

// 我的按钮目标选择器函数

但我无法通过,因为编译器抛出错误“'#selector' 的参数不引用'@Objc' 方法、属性或初始化程序

0 投票
2 回答
224 浏览

ios - 如何使用 textFieldDidChange 识别哪个 UITextField 已更改

我正在使用几个UITextFields 并且想要随时在其中任何一个发生任何变化时做任何事情。

它看起来基本上像:

如您所见,我尝试设置标签,但不确定如何在此处访问它们。

我正在使用 XCode 9.01 和 Swift 4。

0 投票
1 回答
198 浏览

ios - 日期格式在 IOS 中不起作用

我有日期选择器来选择日期并将其显示在标签上。我正在尝试一种yyyy-MM-dd. 但是当我选择任何日期时,标签不会显示我从日期选择器中选择的日期。

我怎样才能显示这种格式yyyy-MM-dd

这是我的代码:

我的日期选择器如下所示:

在此处输入图像描述

0 投票
1 回答
1405 浏览

swift - 以编程方式创建 UIButton 事件时@objc 和 IBAction 之间有什么区别?

从情节提要中创建事件处理程序时UIButton,Swift@IBAction在之前添加func. 当以编程方式将事件添加到 aUIButton到 afunc时,Swift 给出一个错误并说我需要@objc在我的方法前面添加,但是当我添加时@IBAction,它也会编译。

UIButton 以编程方式向我的事件添加事件时,我应该使用 2 和哪一个之间有区别吗?

0 投票
0 回答
374 浏览

swift - 如何在 Swift 中为自定义 NSControl(NSView、NSButton)添加自定义发送操作

我想定义一个自定义NSControl(或NSView),现在的问题是如何向它添加一个Sent Action

发送操作

如图所示,这里是连接检查器中控件的一个或多个已发送操作,对于 a NSButton,这里只有一个操作,对于 a NSTableView,这里有两个操作。

如何为我的自定义控件添加新操作,以便它也列在此处?

谢谢。

0 投票
1 回答
76 浏览

swift - NSButton 在 CATransform3DMakeTranslation 之后不可调用

我有一个从未见过iOS但在macOS Swift开发中出现的奇怪问题。

我有一个方法NSButton添加addSubview到自定义NSView. 该按钮具有目标功能。此按钮添加到customView. 如果我将它添加到全局“视图”中直接工作正常。

知道为什么会这样吗?

更新: testButton 后不可点击CATransform

之后就不行了。。

0 投票
2 回答
1566 浏览

ios - Swift:协议方法作为目标动作中的动作

我想要一个协议:

因此,我可以将任何客户端分配给一个按钮,例如:

但是,它无法编译,因为我必须在 中指定特定函数action,例如:

如果我想通过一个按钮定位多个客户端,如何解决这个问题?

0 投票
3 回答
903 浏览

ios - 如何向另一个类中的 UIButton 添加操作

下面的代码可以正常编译,但会因unrecognized selector sent to instance错误而崩溃。

我有一个类继承自UIViewController

另一个类只是 a 的包装器UIView并包含按钮:

为了清楚起见,我省略了一大块代码,并保留了我认为必要的部分。我认为我的代码不起作用,因为我误解了目标在addTarget函数中的工作方式。通常,我只是self用作按钮操作的目标,所以我只是尝试self从视图控制器传递给CustomToolbarWrapper'sinit函数。

我还尝试了什么:

将按钮的目标从更改targetself

导致应用程序不再崩溃。然而,相反,我相信这行代码没有做任何事情(由于某种原因不会引发错误?),因为尝试打印button.allTargets甚至button.allTargets.count导致应用程序在编译时崩溃,出现 EXC_BREAKPOINT 错误并且没有错误描述在控制台或 XCode UI 中(这让我更加困惑,因为我的代码中没有断点!)。

此外,制作buttonPressed(_:)非静态不会改变前面提到的任何观察结果。

另外,为了确保按钮实际上可以交互,我在以下位置添加了viewDidLoad()这个Controller

Controller并为按钮添加了一个简单的测试方法:

运行代码确实会在控制台日志中打印“Button Pressed”,因此用户应该能够与该按钮进行交互。

如果您认为这不足以解决问题,请随时告诉我,我将发布更多详细信息。

编辑 我更喜欢在类中保留按钮操作的实现,CustomToolbarWrapper以防止将来重复代码,因为无论在哪里CustomToolbarWrapper创建实例,操作都是相同的。

0 投票
0 回答
347 浏览

ios - 在 UIControl 上添加多个目标操作的更有效方法

我的应用程序有许多按钮,其行为取决于它们生成的事件:.touchDown.touchUpInside.touchUpOutside等。

我使用典型的 Target-Action 机制来设置这些行为:

这是非常冗长的。我的问题是:有没有一种更有效的方法来做到这一点,而无需为每种事件类型提供单独的函数?以下是代码的外观:

我一直在研究各种不使用Selector而是将方法包装在闭包中的解决方案。恐怕我在 obj-c 或 Swift 方面还没有足够的经验来了解如何重构我的代码来做到这一点,并且还弱地捕获我的目标和对象、识别我的目标以及消除发送者之间的歧义等。

根据这个答案:将闭包作为目标添加到 UIButton

我试图避免经常写这样的东西,这也很冗长

非常感谢您的帮助。谢谢你。