假设我有一个文本字段 - inputTextField
和一个带有操作performActionDynamically
的UI按钮,在同一个类中我定义了两个功能:1。firstFunc
,2。secondFunc
,现在我想实现这种行为:
如果用户输入" firstFunc"在文本字段然后他点击按钮它应该调用firstFunc
函数,如果他键入" secondFunc"在文本字段中然后他点击按钮它应该调用secondFunc
函数。
在objective-c中,我可以通过以下伪代码轻松实现它:
performActionDynamically
inputTextField.text
NSSelectorFromString()
内通过performSelector:withObject:
获取选择器firstFunc
以执行相应的功能我在swift中实现相同行为时唯一能想到的是 -
secondFunc
,{{1}} 有没有更好的方法来实现预期的行为?请指导。
答案 0 :(得分:1)
您可以尝试这样的事情:
if self.respondsToSelector(Selector(selectorString)) {
NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(0), target: self, selector: Selector(inputTextField.text), userInfo: nil, repeats: false)
}
这是作为回调完成的,因此您必须考虑到这一点。
如果您愿意,可以使用NSThread代替NSTimer:
NSThread.detachNewThreadSelector(Selector(inputTextField.text), toTarget: self, withObject: nil)