相关疑难解决方法(0)

如何使用应用内自定义键盘的按钮输入文本

我做了一个应用程序内的自定义键盘,取代了系统键盘,当我点击内部时弹出UITextField.

在此输入图像描述

这是我的代码:

class ViewController: UIViewController {

    var myCustomKeyboard: UIView!
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        let keyboardNib = UINib(nibName: "Keyboard", bundle: nil)
        myCustomKeyboard = keyboardNib.instantiateWithOwner(self, options: nil)[0] as! UIView

        textField.inputView = myCustomKeyboard
    }

}
Run Code Online (Sandbox Code Playgroud)

键盘布局是从xib文件加载的.

题

如何将按钮文本放入文本字​​段?

笔记:

  • 有许多关于制作自定义系统键盘的教程(需要安装),但我只想要一个应用内键盘.教程使用一个特殊的视图控制器只为键盘,但在这里似乎我只是设置键盘视图.
  • 我已经阅读了数据输入的自定义视图文档.
  • 这是我能找到的最接近的Stack Overflow问题,但它没有描述如何从按钮获取文本.

更新

  • 本教程似乎表明自定义输入视图有一个视图控制器.但是,我在Objective-C代码中迷失了方向.Swift的过程是什么?
  • 这个答案提到了符合的UIKeyInput协议UITextField,但我该如何使用它?
  • 如果有任何内置方式也可以制作自定义应用内键盘,我真的更喜欢制作一个普通的自定义视图.

keyboard ios swift

8
推荐指数
1
解决办法
2565
查看次数

使用委托将数据从一个TableView传输到另一个

我需要tableview通过单击内的按钮将字符串从一个字符串传输到另一个字符串UITableView。我知道如何indexPath通过按钮获取通行符,如下所示:

    let button = sender as MyButton
    let view = button.superview!
    let cell = view.superview as! MyTableViewCell

    let indexPath = tableView.indexPathForCell(cell)
Run Code Online (Sandbox Code Playgroud)

上面的代码可以在单击按钮时获取单元格的索引路径,但是为了传输数据,我必须使用prepareForSegue。因此,我自然会尝试使用segue进行准备并更改senderfrom AnyObject?至MyButton

然后,我收到一条错误消息,提示“ 使用选择器prepareforsegue的重写方法具有不兼容的type”。

我delegates迅速搜索并了解了这些内容以及它们如何提供帮助,并在此处尝试了MakeAppPie给出的答案:

代表们迅速?但这对我没有用。

有什么方法可以将segue的准备工作与上面的代码结合起来吗?我尝试了此操作,但是它导致了我上面刚刚提到的错误消息:

      override func prepareForSegue(segue: UIStoryboardSegue, sender: MyButton)  {

      let myVC = segue.destinationViewController as? CommentsViewController


                   let usender:AnyObject = sender!
                    let button = usender as? MyButton
                    let view = button.superview!
                    myVC!.title = button.titleForState(.Normal)

                    let cell = view.superview as! QuestionCell …
Run Code Online (Sandbox Code Playgroud)

xcode delegates uitableview ios swift

5
推荐指数
1
解决办法
756
查看次数

从其他ViewController调用函数

我有两个ViewControllers,FirstViewController和SecondViewController.两者都有自己的Swift文件,FirstViewController.swift和SecondViewController.swift.

FirstViewController.swift 包含:

class FirstViewController: UIViewController {
    @IBAction func callFunctionInOtherClass(sender: AnyObject) {
//        Call "func showAlert" in SecondViewController when clicking the UIButton in FirstViewController
    }
}
Run Code Online (Sandbox Code Playgroud)

SecondViewController.swift 包含:

class SecondViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!

    func showAlert(sender: AnyObject) {
        let alert = UIAlertView(title: "Working!", message: "This function was called from FirstViewController!\nTextField says: \(textField.text!)", delegate: nil, cancelButtonTitle: "Okay")
        alert.show()
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够func showAlert()在SecondViewController录制时调用UIButtonin FirstViewController. …

class uiviewcontroller ios swift

1
推荐指数
1
解决办法
3200
查看次数

在没有 segue 的情况下在视图控制器之间传递数据

我的设计碰壁了。我试图将字符串从一个视图控制器传递到另一个视图控制器。这两个控制器没有与 segue 连接。我附上了我的故事板的屏幕截图。我有一种感觉,我唯一的选择是使用单例,或者代表可以吗?不使用方法:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
Run Code Online (Sandbox Code Playgroud)

我无法通过 segue 标识符访问 VC1。如果不访问标识符,那怎么可能呢?

请看一下图片,让我知道我有哪些选择以及在这里最好使用什么。

故事板设计

ios swift

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

ios ×4

swift ×4

class ×1

delegates ×1

keyboard ×1

uitableview ×1

uiviewcontroller ×1

xcode ×1