iOS---近来开发中的一些收获

时间:2023-02-13 09:00:15

1. 适配第三方键盘(搜狗、百度)

- (void)keyBoardWillShow:(NSNotification *)notif {

    NSDictionary *info = [notifuserInfo];

    NSValue *value = [infoobjectForKey:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardSize = [valueCGRectValue].size;

     //根据键盘高度做处理,请注意不同的系统,尤其iOS8这个分界点,对于横屏应用,你可能会发现上边获得键盘size的x和y值兑换了!!!

}

第三方输入法问题:

首先在 secureTextEntry 属性为 YES 的输入框内,比如密码框,iOS 系统将强行调用系统默认输入法, 以保证用户的信息安全,这一点在 UIKeyboardTypePhonePad 和 UIKeyboardTypeNamePhonePad 类型的输入框(数字输入框,比如电话号码框)中亦是如此。         第三方输入法将不允许移动光标位置,不允许选中输入框中的文字,这将直接导致目前在安卓输入法中被广泛使用的光标快捷移动功能, 以及剪切,复制,粘贴等功能无法使用。 

2. Appdelegate.m中的方法

1.  - (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {     }
// 与上面方法同时存在,则不调用上面方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options {     return YES; }这样做可以兼容之前老版本的App,值得我们学习!


3. Xcode自带的Source Control

不论你是个人开发,还是软对开发,使用这个可以精确定位你改动了哪些代码,再也不用担心为了测试暂时添加部分代码,而后发布时忘记删除啦!而且还可以查看自己每次提交时添加的历史Log!!!


4. App本地数据管理

(1)应该区分账号保存数据

(2)在你注销登陆时,应该清除一些无用的数据

(3)在开发阶段,应该提供一个切换开发模式的接口,这样就可以在开发模式中做一些有助于调试的操作,比如打印log、弹出错误信息、收集错误信息到本地等等


5. 奇怪现象 UIApplicationDidBecomeActiveNotification

  当弹出UIAlertView后,消失时,总是会触动系统通知 UIApplicationDidBecomeActiveNotification,这是不是Apple的Bug?我多方求证无果!希望大牛解答!谢谢!