使用iOS SDK:
我有一个UIView
带有UITextField
键盘的s.我需要它能够:
UIScrollView
一旦键盘出现,允许滚动内容以查看其他文本字段
自动"跳跃"(通过向上滚动)或缩短
我知道我需要一个UIScrollView
.我已经尝试将我的类更改UIView
为a UIScrollView
但我仍然无法向上或向下滚动文本框.
我需要a UIView
和a UIScrollView
吗?一个进去另一个吗?
需要实现什么才能自动滚动到活动文本字段?
理想情况下,尽可能多的组件设置将在Interface Builder中完成.我只想编写需要它的代码.
注意:我正在使用的UIView
(或UIScrollView
)是由tabbar(UITabBar
)启动的,它需要正常运行.
编辑:我正在添加滚动条,仅用于键盘出现时.即使它不需要,我觉得它提供了更好的界面,因为用户可以滚动和更改文本框.
我已经让它工作,我改变UIScrollView
了键盘上下的框架大小.我只是使用:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会自动"向上移动"或将可见区域中的下部文本字段居中,这是我真正想要的.
我一直在寻找这个,但我似乎无法找到它.我知道如何解雇键盘,Objective-C
但我不知道如何使用Swift
?有人知道吗?
我有一个应用程序,在视图的下半部分有一个文本字段.这意味着当我输入文本字段时键盘覆盖文本字段.
如何在打字时向上移动视图以便我可以看到我正在键入的内容,然后在键盘消失时将其移回原来的位置?
我到处都看,但所有解决方案似乎都在Obj-C中,我还没有完全转换.
任何帮助将不胜感激.
我知道当我想解开键盘时,我需要告诉我的UITextField辞职第一响应者,但我不知道如何知道用户何时按下键盘上的"完成"键.我可以留意通知吗?
是否可以以编程方式更改uitextfield的键盘类型,以便这样的事情可能:
if(user is prompted for numeric input only)
[textField setKeyboardType: @"Number Pad"];
if(user is prompted for alphanumeric input)
[textField setKeyboardType: @"Default"];
Run Code Online (Sandbox Code Playgroud) 我有两个UITextFields
(例如用户名和密码),但是当按下键盘上的返回键时我无法摆脱键盘.我怎样才能做到这一点?
我有一个UITableView
与UITextField
S作为细胞.当UITableView
触摸背景时,我想解除键盘.我试图通过创建一个UIButton
大小UITableView
并将其放在后面来做到这一点UITableView
.唯一的问题是,UIButton
即使触摸在UITableView上,也能捕获所有触摸.我究竟做错了什么?
谢谢!
iPad没有像iPhone/iPod那样的"Numpad"键盘.
我想找到如何限制用户的键盘只接受值0到9.
我会想象使用UITextField的"shouldChangeCharactersInRange",但我不知道实现它的最佳方法.
我一直在尝试添加一些代码来在键盘出现时移动我的视图,但是,我在尝试将Objective-C示例转换为Swift时遇到了问题.我取得了一些进展,但我被困在一条特定的路线上.
这些是我一直关注的两个教程/问题:
当Keypad使用Swift出现时,如何向上移动UIViewController的内容 http://www.ioscreator.com/tutorials/move-view-when-keyboard-appears
这是我目前的代码:
override func viewWillAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil)
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
func keyboardWillShow(notification: NSNotification) {
var keyboardSize = notification.userInfo(valueForKey(UIKeyboardFrameBeginUserInfoKey))
UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height, right: 0)
let frame = self.budgetEntryView.frame
frame.origin.y = frame.origin.y - keyboardSize
self.budgetEntryView.frame = frame
}
func keyboardWillHide(notification: NSNotification) {
//
}
Run Code Online (Sandbox Code Playgroud)
目前,我在这一行收到错误:
var keyboardSize = notification.userInfo(valueForKey(UIKeyboardFrameBeginUserInfoKey))
Run Code Online (Sandbox Code Playgroud)
如果有人能让我知道这行代码应该是什么,我应该设法自己弄清楚其余部分.
uikeyboard ×10
ios ×9
uitextfield ×5
swift ×4
iphone ×3
cocoa-touch ×2
ipad ×1
objective-c ×1
uikit ×1
uiscrollview ×1
uitableview ×1