- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在键盘出现时向上移动 UIViewController 底部的内容。在 View Controller 的底部,我有一个 UITextField,当用户单击它时,键盘会出现并阻止它,因此用户无法看到他们在 UITextField 中输入的内容。
我的 UITextField 声明如下:
@IBOutlet var startTime : UITextField
我需要一个 UIScrollView 来完成这个吗?或者有没有办法在键盘出现时向上移动页面的内容。
最佳答案
有很多方法可以实现这一点,但您始终需要收听与键盘相关的通知才能做到这一点。它们的工作方式与 obj-c 的相同。下面的简化示例显示了如何在键盘出现时将文本字段向上移动,并在键盘消失时将其向下移动。以下示例是 UIViewController 的实现。
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);
}
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self);
}
func keyboardWillShow(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y - rect.height;
self.textField.frame = frame;
}
func keyboardWillHide(sender: NSNotification) {
let s:NSValue = sender.userInfo.valueForKey(UIKeyboardFrameBeginUserInfoKey) as NSValue;
let rect :CGRect = s.CGRectValue();
var frame = self.textField.frame;
frame.origin.y = frame.origin.y + rect.height;
self.textField.frame = frame;
}
关于cocoa-touch - 如何使用 Swift 在键盘出现时向上移动 UIViewController 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24097831/
这让我抓狂,不知道为什么,但我无法显示 DIV。还有一个图标,无法正确触发,请参阅此处:Fiddle HTML: Specify Survey(s)
随着 Google 最近发布的设计支持库,引入了几个很酷的新 View 。使用一些新组件(例如 CoordinatorLayout )可能(!)使您能够实现滚动行为。 我尝试了一些内置的滚动行为,但没
我通过 putty 在 xterm 上使用 vim 6.3.81。当我使用 set mouse=a 时,我可以滚动文件,但不能选择文本。当使用 set mouse= 禁用鼠标时,我可以用鼠标选择文本(
我是一名优秀的程序员,十分优秀!