如何使PHFComposeBarView控件在Swift iOS应用中处于活动状态?

易碎的

作为iOS开发的相对菜鸟,我正在努力使PHFComposeBarView控件在我的Swift iOS应用程序中变为活动状态。

斜视PHFComposeBarView示例应用程序的Obj-C该SO答案后,我已尽力将基本设置转换为Swift,以便控件显示在主视图中:

在此处输入图片说明

但是,我还没有设法使该控件以编程方式变为活动状态。

我已经在Swift 2.0 / XCode 7.0 Beta 2中创建了一个最小的测试用例项目,其ViewController类似于:

ViewController.swift:

import UIKit
import PHFComposeBarView

class ViewController: UIViewController, PHFComposeBarViewDelegate {

    var composeBar: PHFComposeBarView {
        let viewBounds = self.view.bounds
        let frame = CGRectMake(0.0, viewBounds.size.height - PHFComposeBarViewInitialHeight, viewBounds.size.width, PHFComposeBarViewInitialHeight)
        let composeBarView = PHFComposeBarView(frame: frame)
        composeBarView.delegate = self
        return composeBarView
    }

    override var inputAccessoryView: UIView {
        return self.composeBar
    }

    override func canBecomeFirstResponder() -> Bool {
        return true
    }

    override func viewDidAppear(animated: Bool) {
        print("viewDidAppear self \(self)")
        print("composeBar.delegate \(self.composeBar.delegate)")
        print("composeBar.textView.delegate \(self.composeBar.textView.delegate)")
        print("composeBar.canBecomeFirstResponder() \(self.composeBar.canBecomeFirstResponder())")
        print("composeBar.textView.canBecomeFirstResponder() \(self.composeBar.textView.canBecomeFirstResponder())")
        let res = self.composeBar.becomeFirstResponder()
        print("composeBar.becomeFirstResponder() \(res)")
        print("composeBar.isFirstResponder() \(self.composeBar.isFirstResponder())")
        print("composeBar.textView.isFirstResponder() \(self.composeBar.textView.isFirstResponder())")
    }

}

安慰:

viewDidAppear self <SwiftPHFComposeBarTest.ViewController: 0x7fe088619d90>
composeBar.delegate Optional(<SwiftPHFComposeBarTest.ViewController: 0x7fe088619d90>)
composeBar.textView.delegate Optional(<PHFDelegateChain: 0x7fe088654850>)
composeBar.canBecomeFirstResponder() true
composeBar.textView.canBecomeFirstResponder() true
composeBar.becomeFirstResponder() false
composeBar.isFirstResponder() false
composeBar.textView.isFirstResponder() false

怎么会composeBar.canBecomeFirstResponder()回来true却又composeBar.becomeFirstResponder()回来false呢?

另外,我不确定委托是否为可选对象是否有问题。

编辑:更新以包括调试输出。

易碎的

嗯,一种解决方案似乎是改为使用情节提要

ViewController.swift:

import UIKit
import PHFComposeBarView

class ViewController: UIViewController, PHFComposeBarViewDelegate {

    @IBOutlet weak var composeBarView: PHFComposeBarView!

    override func viewDidLoad() {
        super.viewDidLoad()
        composeBarView.delegate = self
    }

    override func canBecomeFirstResponder() -> Bool {
        return true
    }

    override var inputAccessoryView: UIView {
        composeBarView.removeFromSuperview()
        return composeBarView
    }

}

截屏

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我的应用程序在 IOS 中处于活动状态时如何阻止屏幕截图

来自分类Dev

在 iOS 应用程序中显示通知,而应用程序在前台/在 swift 3 中处于活动状态

来自分类Dev

通过Swift中的触摸检测应用是处于活动状态还是非活动状态

来自分类Dev

如果应用程序在ios中处于活动状态,则在收到通知时如何发出声音?

来自分类Dev

如何检测应用程序是否在Mac应用程序中处于非活动状态

来自分类Dev

如何检查整个应用程序中是否有任何UIBackgroundTask是否处于活动状态?

来自分类Dev

当应用在Android中处于非活动状态时,GCM如何工作

来自分类Dev

当应用在Android中处于非活动状态时,GCM如何工作

来自分类Dev

当应用程序处于非活动状态并运行代码时,Swift iOS应用程序会收到推送通知

来自分类Dev

iOS-如何在应用程序处于活动状态和非活动状态时通过自定义声音发出警报并暂停

来自分类Dev

在iOS 8中应用程序处于后台状态时如何连续执行任务

来自分类Dev

找出StatUpdatingLocation是否在Swift中处于活动状态

来自分类Dev

HTML / Angular中的控件处于活动状态时如何启用消息

来自分类Dev

我如何知道用户在Winform场景中处于活动状态?

来自分类Dev

如何检查重复警报是否在Android中处于活动状态?

来自分类Dev

如何在Blazor中设置“导航项目处于活动状态”?

来自分类Dev

我如何知道用户在Winform场景中处于活动状态?

来自分类Dev

如果链接处于活动状态,如何更改链接中的文本?

来自分类Dev

如何检查通知是否在android中处于活动状态

来自分类Dev

在ListView中处于活动状态或非活动状态时,如何更改容器的颜色

来自分类Dev

Windows中全屏模式下有另一个应用程序处于活动状态时,如何打开应用程序窗口?

来自分类Dev

当应用程序处于活动状态时,Swift NSUserNotification不显示

来自分类Dev

如何通过点击本地通知来确定该应用程序处于活动状态

来自分类Dev

关闭Android应用程序时如何保持Web套接字连接处于活动状态

来自分类Dev

关闭Android应用程序时如何保持Web套接字连接处于活动状态

来自分类Dev

使用Tabset加载应用程序时,如何使Tab处于活动状态?

来自分类Dev

从工具箱中拖动控件时,ControlDesigner处于不活动状态

来自分类Dev

暂时使MFC功能区中的控件处于非活动状态或已禁用

来自分类Dev

当用户在ASP.NET应用程序中处于非活动状态3分钟时,如何保持会话超时

Related 相关文章

  1. 1

    当我的应用程序在 IOS 中处于活动状态时如何阻止屏幕截图

  2. 2

    在 iOS 应用程序中显示通知,而应用程序在前台/在 swift 3 中处于活动状态

  3. 3

    通过Swift中的触摸检测应用是处于活动状态还是非活动状态

  4. 4

    如果应用程序在ios中处于活动状态,则在收到通知时如何发出声音?

  5. 5

    如何检测应用程序是否在Mac应用程序中处于非活动状态

  6. 6

    如何检查整个应用程序中是否有任何UIBackgroundTask是否处于活动状态?

  7. 7

    当应用在Android中处于非活动状态时,GCM如何工作

  8. 8

    当应用在Android中处于非活动状态时,GCM如何工作

  9. 9

    当应用程序处于非活动状态并运行代码时,Swift iOS应用程序会收到推送通知

  10. 10

    iOS-如何在应用程序处于活动状态和非活动状态时通过自定义声音发出警报并暂停

  11. 11

    在iOS 8中应用程序处于后台状态时如何连续执行任务

  12. 12

    找出StatUpdatingLocation是否在Swift中处于活动状态

  13. 13

    HTML / Angular中的控件处于活动状态时如何启用消息

  14. 14

    我如何知道用户在Winform场景中处于活动状态?

  15. 15

    如何检查重复警报是否在Android中处于活动状态?

  16. 16

    如何在Blazor中设置“导航项目处于活动状态”?

  17. 17

    我如何知道用户在Winform场景中处于活动状态?

  18. 18

    如果链接处于活动状态,如何更改链接中的文本?

  19. 19

    如何检查通知是否在android中处于活动状态

  20. 20

    在ListView中处于活动状态或非活动状态时,如何更改容器的颜色

  21. 21

    Windows中全屏模式下有另一个应用程序处于活动状态时,如何打开应用程序窗口?

  22. 22

    当应用程序处于活动状态时,Swift NSUserNotification不显示

  23. 23

    如何通过点击本地通知来确定该应用程序处于活动状态

  24. 24

    关闭Android应用程序时如何保持Web套接字连接处于活动状态

  25. 25

    关闭Android应用程序时如何保持Web套接字连接处于活动状态

  26. 26

    使用Tabset加载应用程序时,如何使Tab处于活动状态?

  27. 27

    从工具箱中拖动控件时,ControlDesigner处于不活动状态

  28. 28

    暂时使MFC功能区中的控件处于非活动状态或已禁用

  29. 29

    当用户在ASP.NET应用程序中处于非活动状态3分钟时,如何保持会话超时

热门标签

归档