Tag: 快捷

数据input自定义视图的Swift示例(自定义应用程序内键盘)

目标 我想制作一个只在我的应用程序中使用的自定义键盘,而不是需要安装的系统键盘。 我已阅读和尝试 文档 应用程序扩展编程指南:自定义键盘 数据input的自定义视图 上面的第一篇文章指出: 确保一个自定义的系统范围的键盘确实是你想要开发的。 要为您的应用程序提供完全自定义的键盘,或仅在应用程序中使用自定义键来补充系统键盘,iOS SDK提供了其他更好的选项。 在iOS的文本编程指南中阅读自定义input视图和input用于数据input的自定义视图中的附件视图。 这就是我所说的第二篇文章。 不过,那篇文章没有足够的细节让我开始。 教程 iOS 8:在Swift中创build自定义键盘 如何使用Swift在iOS 8中制作自定义键盘 Xcode 6教程:iOS 8.0 Swift中简单的自定义键盘 使用iOS 8应用程序扩展创build自定义键盘 我可以从上面的列表中的第二个教程中获得一个可用的键盘。 但是,我找不到任何教程展示了如何在数据input自定义视图文档中介绍如何创build应用程序内置键盘。 堆栈溢出 我在回答当前问题的途中也问了(并回答了)这些问题。 如何使用应用内自定义键盘的buttoninput文本 代表在Swift中 题 有没有人有一个最小的例子(甚至一个button)的应用程序自定义键盘? 我不是在寻找一个完整的教程,只是一个我可以自己展开的概念certificate。

只有在键盘覆盖input字段时才能移动视图

我正在尝试为iPhone构build一个input屏幕。 屏幕上有许多input字段。 他们大多数在屏幕的顶部,但两个领域是在底部。 当用户尝试编辑屏幕底部的文本时,键盘将popup,并将覆盖屏幕。 当发生这种情况时,我find了一个简单的解决scheme来移动屏幕,但结果是屏幕总是向上移动,而当用户尝试编辑这些屏幕时,屏幕顶部的字段不可用。 有没有办法让屏幕只在底部字段被编辑时才移动? 我使用了我在这里find的这个代码: override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil); NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil); } func keyboardWillShow(sender: NSNotification) { self.view.frame.origin.y -= 150 } func keyboardWillHide(sender: NSNotification) { self.view.frame.origin.y += 150 }

在Swift函数中从asynchronous调用中返回数据

我在我的Swift项目中创build了一个工具类,它处理所有的REST请求和响应。 我已经构build了一个简单的REST API,所以我可以testing我的代码。 我创build了一个需要返回一个NSArray的类方法,但是因为API调用是asynchronous的,我需要从asynchronous调用中的方法返回。 问题是asynchronous返回void。 如果我在Node中这样做,我会使用JS承诺,但我不能找出一个在Swift中的解决scheme。 import Foundation class Bookshop { class func getGenres() -> NSArray { println("Hello inside getGenres") let urlPath = "http://creative.coventry.ac.uk/~bookshop/v1.1/index.php/genre/list" println(urlPath) let url: NSURL = NSURL(string: urlPath) let session = NSURLSession.sharedSession() var resultsArray:NSArray! let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in println("Task completed") if(error) { println(error.localizedDescription) } var […]