nixzhu

4 posts
iOS

自定义 UITextView 关键字高亮与点击检测

一种很简单的方法,妙手偶得,可比较容易地处理 Mention、Hashtag 等 作者:@nixzhu 我们大概都知道,设置好 UITextView 的 dataDetectorTypes 后,就可自动检测并高亮网络链接、电话号码、地址等功能。而且在 iPhone 6s (Plus) 上,还可以 3D Touch 网络链接,直接就有 pop/peek 的功能。 若我们要增加对 mention 或 hashtag 的检测,例如 *@nixzhu* hello 里的 @nixzhu 或 what a great

  • nixzhu
iOS

MonkeyKing —— 不使用官方 SDK 集成微博,微信分享

第三方 SDK 还是少集成的好,不仅体积不小,而且你也不知道他在你的 App 里做了什么。对于这些 SDK 只能请出 MongkeyKing 齐天大圣来收服了。 安装 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'MonkeyKing', '~> 0.5' 基本使用 修改 plist Info.plist, 添加 URL Type: 如果是 iOS 9, 那么你还需要在

  • nixzhu
UIMenuController

使用 UIMenuController 的前提

一种取舍 给 View 加长按手势弹出自定义 Items 的 Menu 大概如下: let longPress = UILongPressGestureRecognizer(target: self, action: "handleLongPress:") textContentTextView.addGestureRecognizer(longPress) func handleLongPress(longPress: UILongPressGestureRecognizer) { if longPress.state == .Began { if let view = longPress.view, superview = view.superview { let menu = UIMenuController.sharedMenuController() let loveItem = UIMenuItem(title:

  • nixzhu
NSNotification

键盘通知处理之禅

自从 iOS 8 引入了第三方键盘扩展后(或更早),键盘通知就不太正常了。例如,若用户使用中文拼音键盘,弹出时UIKeyboardWillShowNotification可能发送不只一次(有可能两次,甚至三次)。 作者:@nixzhu ================================= 近日在 iOS 9 beta4 上,我更观察到 UIKeyboardWillShowNotification 可能会少发,导致之前根据其发送次数做的算法不能正常工作,结果就是在使用中文拼音键盘时,本该处于键盘上方的输入框会被键盘挡住大部分。 为了解决这个问题,同时也对键盘通知相关的代码做整理并重构(毕竟这些代码分散在 ViewController 里也不好维护,更难以重用),我想写一个单独的库是最好的选择。至于库的名字,“键盘侠”就很不错。虽然在中文里它不算个好词汇,不过英文念着还不错:KeyboardMan。 先说一下之前对键盘通知UIKeyboardWillShowNotification发送多次的处理。 在做键盘跟随动画时,我们需要根据键盘的高度来调整某些 View 的位置,或者要更新 UIScrollView(

  • nixzhu