- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天前,我基于在《iOS 4 应用程序开发入门》一书中看到的 ScrollView 应用程序创建了一个应用程序。当我触摸文本字段时, ScrollView 会智能显示。但是当我触摸另一个文本字段时它总是崩溃。
调试器显示:
2012-07-31 21:32:35.721 View-based Application[1515:c07] -[ViewController keyboardDidShow:]: unrecognized selector sent to instance 0x6a3e400
2012-07-31 21:32:35.723 View-based Application[1515:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController keyboardDidShow:]: unrecognized selector sent to instance 0x6a3e400'
*** First throw call stack:
(0x14b2022 0xeb2cd6 0x14b3cbd 0x1418ed0 0x1418cb2 0x9d7a29 0x147d855 0x147d778 0x91c19a 0x3ab845 0xbfe1bc4 0x3a6e01 0x4f757 0x45e49 0x45f34 0xbfe5aac 0x1d8ab54 0x3d93509 0x13e9803 0x13e8d84 0x13e8c9b 0x139b7d8 0x139b88a 0x15626 0x2182 0x20f5)
terminate called throwing an exception(lldb)
我是 iOS 开发的新手。我真的不知道出了什么问题。这是 viewController.m 代码。也许它有点长。请帮我。如果有人需要整个代码,我可以发给他。我的邮箱:kururuhuang@gmail.com
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize scrollView;
-(void) viewWillAppear:(BOOL)animated{
//---registers the notifications for keyboard---
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(keyboardDidShow:)
name:UIKeyboardDidShowNotification
object:self.view.window];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(keyBoardDidHide)
name:UIKeyboardDidHideNotification
object:nil];
}
//---when a TextField view begins editing---
-(void) textFieldDidBeginEditing:(UITextField *)textFieldView{
currentTextField = textFieldView;
}
//---when the user taps on the return key on the keyboard---
-(BOOL) textFieldShouldReturn:(UITextField *) textFieldView {
[textFieldView resignFirstResponder];
return NO;
}
//---when a TextField view is done editing---
-(void) textFieldDidEndEditing:(UITextField *) textFieldView {
currentTextField = nil;
}
//---when the keyboard appears---
-(void) keyboardDidshow:(NSNotification *) notification {
if (keyboardIsShown) return;
NSDictionary* info = [notification userInfo];
//---obtain the size of the keyboard---
NSValue *aValue =
[info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [self.view convertRect:[aValue CGRectValue] fromView:nil];
NSLog(@"%f", [aValue CGRectValue].size.height);
NSLog(@"%f",keyboardRect.size.height);
//---resize the scroll view (with keyboard)---
CGRect viewFrame = [scrollView frame];
viewFrame.size.height -= keyboardRect.size.height;
scrollView.frame = viewFrame;
//---scroll to the current text field---
CGRect textFieldRect = [currentTextField frame];
[scrollView scrollRectToVisible:textFieldRect animated:YES];
keyboardIsShown = YES;
}
//---when the keyboard disappears---
-(void) keyboardDidHide:(NSNotification *) notification {
NSDictionary* info = [notification userInfo];
//---obtain the size of the keyboard---
NSValue* aValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [self.view convertRect:[aValue CGRectValue] fromView:nil];
//---resize the scroll view back to the orginal size (without keyboard)---
CGRect viewFrame = [scrollView frame];
viewFrame.size.height += keyboardRect.size.height;
scrollView.frame = viewFrame;
keyboardIsShown = NO;
}
//---before the View window disapppear--
-(void) viewWillDisappear:(BOOL)animated{
//---removes the notifications for keyboard---
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)viewDidLoad
{
scrollView.frame = CGRectMake(0,0,320,460);
[scrollView setContentSize:CGSizeMake(320, 701)];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
@end
最佳答案
您似乎有错字:
-(void) keyboardDidshow:(NSNotification *) notification {
应该是
-(void) keyboardDidShow:(NSNotification *) notification {
^
谢谢@trojanfoe (和 @jrturton 晚了 11 秒 :P) 用于指出
-(void) keyboardDidhide:(NSNotification *) notification {
应该是
-(void) keyboardDidHide:(NSNotification *) notification {
^
关于iphone - 如何修复 "unrecognized selector sent to instance",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742354/
我最近将 Xcode 更新到 11.3.1 版,之后我无法运行我的应用程序。我一直收到以下异常: 2020-02-11 16:13:04.767795-0600 UVM[5204:80616] -[E
我正在尝试使用 horton 模式注册表在 kafka 中使用 avro 格式的消息。问题是,当我尝试发布 avro 消息时,我收到此错误: Caused by: com.fasterxml.jack
我正在尝试在 Red Hat Linux 上安装 MySql Server。 我已经下载了 tar文件并将其解压缩。 然后,我跑了: rpm -qpl mysql-community-server-5
在 fedora 22 上,我发现所有标准的 go 库在 go 的路径上都不可见。 注意 我确实清理了我的 golang 系统 - 所以我很确定这不是升级 go 时经常发生的混合包版本控制问题。 注意
这个问题在这里已经有了答案: systemctl command doesn't work inside docker-container (2 个回答) 8 个月前关闭。 我是 docker 新手,
如何保护注销操作?我读了default configuration并设置了 logout: csrf_parameter: _token csrf_provider:
我按照说明here按照以下步骤在 WSL 上安装 mariadb。我运行这个sudo service mysql start我有mysql: unrecognized service知道如何解决这个问
我需要选择一个隐藏字段才能将其删除。我想按类型、自定义数据属性和名称选择它。我的选择器如下所示: $("input[type=hidden] data-supplied='Cola' name='co
我正在Ubuntu 16.04上针对ARM体系结构交叉编译gpsd3.20。如您所知,gpsd使用Sconsctruct来编译源代码。在我进行交叉编译时,需要创建libgps.so的那一刻显示了unr
我正在实现 Skobbler SDK (v2.5),但我在第一步中遇到了问题。 应用程序因以下错误而崩溃:[SKVectorMapView displayTrafficWithMode:]:无法识别的
我正在使用以下命令运行 Java: java -Xms3G -Xmx3G -Xmn1G -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=15 -
我正在使用 django 和 VB Linux Red Hat。我尝试过使用命令 python manage.py runserver - 192.168.1.100:8000 为了访问我的网站。到目
我正在处理使用 CodeIgniter 和 HTML5 布局的新网站。 我从我的旧网站复制了一些代码,但当我在我的新网站上尝试这个时,它给了我这个错误: Error: Syntax error, un
在用 Flex 编写 token 生成器时,我遇到了这个恼人的错误:“无法识别的规则” 我的代码是: /* Keywords */ TYPE int|double|bool|char L
我正在测试 Android Pay API。我使用命令生成了公钥 $ openssl ec -in merchant-key.pem -pubout -text -noout 和 echo $PUBL
我有几行代码可以用 Java 读取文件的内容。基本上我使用的是 FileReader 和 BufferedReader。我正在正确阅读这些行,但是,第一行的第一个字符似乎是一个 undefined s
UIView *v2 = ({ UIView *view = [UIView new]; [self.view addSubview:view]; [v
我遇到了一种情况,我有一个用 javascript 编写的表单,它为人们创建个人资料,详细说明了他们的姓名简历等。无论如何,我尝试向此表单添加一些新字段,但我添加的每个新字段都是当我尝试编辑个人资料信
在我的 ViewController 类中,我有一个函数: func updateTimes() { // (code) } 我创建了一个计时器: class ViewController: NS
我正在尝试运行 Behat(对我来说是第一次)并且成功了。 但是我有一个配置问题。我尝试像这样更改功能和 Bootstrap 的路径: #behat.yml default: paths:
我是一名优秀的程序员,十分优秀!